Javascript 使用JS查找字符串中最后一个单词字符(例如:/\w/)的索引
我正在寻找一种简单、快速的方法来查找字符串中最后一个非下划线的单词字符(即数字或字母)的索引 示例:Javascript 使用JS查找字符串中最后一个单词字符(例如:/\w/)的索引,javascript,regex,Javascript,Regex,我正在寻找一种简单、快速的方法来查找字符串中最后一个非下划线的单词字符(即数字或字母)的索引 示例: lastCharacterIndex(“你好,世界!”); => 10 使用RegExp.lastIndex: s = "hello world!"; re = /[a-z0-9](?=\W*$)/gi; // global flag is important re.exec(s); index = re.lastIndex-1; // 10 函数lastCharacterIndex(str
lastCharacterIndex(“你好,世界!”);
=> 10
使用RegExp.lastIndex
:
s = "hello world!";
re = /[a-z0-9](?=\W*$)/gi; // global flag is important
re.exec(s);
index = re.lastIndex-1; // 10
函数lastCharacterIndex(str){
var m=str.match(/\w[^\w]*$/);
返回null==m?-1:str.lastIndexOf(m[0]);
}
您可以搜索字母或数字,后跟非字母非数字,并获取匹配项的索引(如果存在匹配项)
JS中RegExp的匹配是一个数组,但它有两个额外的非整数属性:“index”和“input”。不确定它的索引,但最后一个alphanum应该是最后一个
使用此
[\S\s]*[^\W_]
您可以将字符串的字符从头到尾循环,并检查其ascii数字是否为数字或字母。我感谢大家的回答,每一个都非常好,但是@anubhava's在10000次迭代后是最快的。它可能不是最快的,它使用了向前看,从一行的开头开始。最快的可能是当它开始在一个贪婪的比赛结束线。
[\S\s]*[^\W_]