我正在寻找一种简单的 快速 方式来查找字符串中最后一个非下划线字符(即数字或字母)的索引。
示例:
lastCharacterIndex("hello world!");
=> 10
答案 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_]