2012-03-23 165 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);

相关问题