使用JS在字符串中查找最后一个单词字符的索引(例如:/ \ w /)

时间:2014-03-27 19:41:28

标签: javascript regex

我正在寻找一种简单的 快速 方式来查找字符串中最后一个非下划线字符(即数字或字母)的索引。

示例:

lastCharacterIndex("hello world!"); => 10

4 个答案:

答案 0 :(得分:3)

使用RegExp.lastIndex

s = "hello world!";
re = /[a-z0-9](?=\W*$)/gi; // global flag is important
re.exec(s);

index = re.lastIndex-1; // 10

答案 1 :(得分:0)

function lastCharacterIndex(str){
    var m = str.match(/\w[^\w]*$/);
    return null===m ? -1 : str.lastIndexOf(m[0]);    
}

答案 2 :(得分:0)

您可以搜索一个字母或数字,后跟非字母非数字,并获取匹配的索引(如果匹配)。

var s = "hello world!";
var re = /[a-z\d][\W_]*$/i;
var match = re.exec(s);
var index = match ? match.index : -1;
alert(index);  // 10

JS中的RegExp匹配是一个数组,但它有两个额外的非整数属性:" index"和"输入"。

答案 3 :(得分:0)

不确定它的索引,但最后一个alphanum应该是最后一个 使用此

匹配0的字符
 [\S\s]*[^\W_]