Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用JS查找字符串中最后一个单词字符(例如:/\w/)的索引_Javascript_Regex - Fatal编程技术网

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_]