2012-03-23 163 views

回答

4

不jQuery的,只是JavaScript的:lastIndexOfsubstring會做(不是因爲更新顯示多個字符)。正如具有捕獲組的正則表達式包含一個字符類後跟一個字符串結尾錨,例如/([^.;+_]+)$/RegExp#execString#match一起使用。

E.g. (live copy | source):

var match = /([^.;+_]+)$/.exec(theStringToTest), 
    result = match && match[1]; 
1
var s = "string.name+org.com", 
    lw = s.replace(/^.+[\W]/, ''); 

console.log(lw) /* com */ 

這也將爲
string.name +組織/ COM
string.name + org.info

0

使用工作的JavaScript函數一樣

url.substr(url.length - 3); 
+4

這不會像'last.fm'那樣工作 – m90 2012-03-23 12:50:51

4

使用lastIndexOfsubstr來查找charac之三,並得到字符串的一部分後:

var extension = name.substr(name.lastIndexOf(".") + 1); 

演示:http://jsfiddle.net/Guffa/K3BWn/

+0

這很好,直到他們改變問題列出多個字符(例如,不只是'.')。 – 2012-03-23 13:18:49

1

您可以使用RegExp Object

試試這個代碼:

"http://stackoverflow.com".replace(/.*\./,""); 
1

我將在瘋狂(即沒有正則表達式)拋出一個:

var s = 'string.name+org.com'; 
var a = s.split('.'); //puts all sub-Strings delimited by . into an Array 
var result = a[a.length-1]; //gets the last element of that Array 
alert(result);​ 

編輯:由於問題的更新要求很高多個分隔符工作這可能不是要走的路。太瘋狂.....

+0

這很好(除了大量不必要的臨時對象),直到他們將問題改爲具有多個字符,而不僅僅是'.'。 – 2012-03-23 13:26:35

+0

@ T.J.Crowder哦,我沒有注意到編輯呢....感謝您的通知。 – m90 2012-03-23 13:28:14

0

這也許是來不及考慮,該代碼使用jquery

var afterDot = value.substr(value.lastIndexOf('_') + 1); 

你可以只replate「_」到」工作正常,我。'

var myString = 'asd/f/df/xc/asd/test.jpg' 
var parts = myString.split('/'); 
var answer = parts[parts.length - 1]; 
console.log(answer); 
+0

var myString ='asd/f/df/xc/asd/test.jpg' var parts = myString.split('/'); var answer = parts [parts.length - 1]; – 2016-12-05 01:28:21

1

一個簡單的和可讀的計算策略爲一個字符的從一組定義的最後一次出現之後得到子串是分裂與含有一個字符類,然後使用pop()得到一個正則表達式的串所得陣列的最後一個元素:

pop()方法從數組移除的最後一個元素並返回該元素

見下一個JS演示:

var s = 'string.name+org.com'; 
 
var result = s.split(/[.;+_]/).pop(); 
 
console.log(result);

在默認情況下,正則表達式的所有非重疊發生分裂。

注意:如果您需要匹配^]\-,你可以逃跑,隨時隨地使用字符類(如/[\^\-\]\\]/)內。有可能避免在^(如果你沒有把它放在開頭[之後),-(如果它正好在開始[之後,在結束]之前,在有效範圍之後,或者在簡寫字符類和另一個符號):/[-^\]\\]/

另外,如果你需要用一個單個字符分割,沒有正則表達式是必要的:«後最後一個字符»

// Get the substring after the last dot 
 
var result = 'string.name+org.com'.split('.').pop(); 
 
console.log(result);

相關問題