我正在寻找一种简单的、快速的方法来查找字符串中最后一个非下划线的单词字符(即数字或字母)的索引。
示例:
lastCharacterIndex("hello world!"); => 10
发布于 2014-03-27 19:46:36
使用RegExp.lastIndex
s = "hello world!";
re = /[a-z0-9](?=\W*$)/gi; // global flag is important
re.exec(s);
index = re.lastIndex-1; // 10发布于 2014-03-27 20:02:43
function lastCharacterIndex(str){
var m = str.match(/\w[^\w]*$/);
return null===m ? -1 : str.lastIndexOf(m[0]);
}发布于 2014-03-27 20:24:49
您可以搜索一个字母或数字后面只有非字母非数字,并采取匹配的索引(如果有匹配)。
var s = "hello world!";
var re = /[a-z\d][\W_]*$/i;
var match = re.exec(s);
var index = match ? match.index : -1;
alert(index); // 10JS中的RegExp匹配是一个数组,但它有两个额外的非整数属性:"index“和"input”。
https://stackoverflow.com/questions/22697613
复制相似问题