字符串操作 - 在char的最后一个位置之后获取值

时间:2012-03-23 12:45:35

标签: javascript jquery

如何在最后一个char(。; + _等)之后获取值: e.g。

  

string.name + org.com

我想得到“com”。 jQuery中有任何函数吗?

7 个答案:

答案 0 :(得分:8)

使用lastIndexOfsubstr查找字符并获取字符串后面的部分:

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

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

答案 1 :(得分:4)

不是jQuery,只是JavaScript: lastIndexOfsubstring会这样做 (不是因为更新表明多个字符)。正如具有捕获组的正则表达式一样,该捕获组包含字符类,后跟字符串结尾锚点,例如/([^.;+_]+)$/RegExp#execString#match一起使用。

E.g。 (live copy | source):

var match = /([^.;+_]+)$/.exec(theStringToTest),
    result = match && match[1];

答案 2 :(得分:2)

从定义的集合中最后一次出现字符后获取子字符串的简单且可读的approch是拆分字符串,其中包含一个包含字符类的正则表达式,然后使用{{3}获取结果数组的最后一个元素:

  

pop()方法从数组中删除最后一个元素并返回该元素

请参阅下面的JS演示:



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




默认情况下在正则表达式的所有非重叠事件中进行拆分。

注意:如果您需要匹配^]\-,您可以将其转义并使用字符类(例如/[\^\-\]\\]/)。可以避免转义^(如果您在开场[后没有将其放好),-(如果它在开幕[之后,就在之前)结束],在有效范围之后,或在速记字符类和另一个符号之间):/[-^\]\\]/

此外,如果您需要使用单个char进行拆分,则不需要正则表达式:



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




答案 3 :(得分:1)

var s  = "string.name+org.com",
    lw = s.replace(/^.+[\W]/, '');

console.log(lw) /* com */

这也适用于 string.name +组织/ COM
string.name + org.info

答案 4 :(得分:1)

您可以使用RegExp Object

试试这段代码:

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

答案 5 :(得分:1)

我会投入一个疯狂的(即没有RegExp):

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);​

编辑:由于问题的更新要求多个分隔符工作,这可能不是可行的方法。太疯狂 .....

答案 6 :(得分:0)

使用像

这样的javascript函数
url.substr(url.length - 3);