Javascript的String.indexOf
返回字符串中搜索词的索引。
它从搜索字符串的开头返回首次找到字符串的索引。例如:
'abcdefghijklmnopqrstuvwxyz'.indexOf('def') = 3;
但我需要在搜索结束时获取它,例如:
'abcdefghijklmnopqrstuvwxyz'.indexOf('def') = 6; //essentially index + searchString.length
这样我就可以从返回的值String.substr
获取该点之后的字符串。
答案 0 :(得分:6)
我用一个简单的函数对它进行了排序,但在编写之后,我只是觉得它很简单,也很有用,我无法理解为什么它还没有在JavaScript中实现!?
String.prototype.indexOfEnd = function(string) {
var io = this.indexOf(string);
return io == -1 ? -1 : io + string.length;
}
将获得所需的结果
'abcdefghijklmnopqrstuvwxyz'.indexOfEnd('def'); //6
EDIT也可能包括lastIndexOf实现
String.prototype.lastIndexOfEnd = function(string) {
var io = this.lastIndexOf(string);
return io == -1 ? -1 : io + string.length;
}
答案 1 :(得分:0)
var findStr = "def";
var searchString = 'abcdefghijklmnopqrstuvwxyz';
var endOf = -1;
endOf = searchString.lastIndexOf(findStr) > 0 ? searchString.lastIndexOf(findStr) + findStr.length : endOf;
alert(endOf);
如果找不到则警告-1
如果你有这个字符串,注意返回23:
var searchString = 'abcdefghijklmnopqrstdefuvwxyz';
作为一项功能:
function endofstring (searchStr,findStr){
return searchStr.lastIndexOf(findStr) > 0 ? searchStr.lastIndexOf(findStr) + findStr.length : -1;
}
endofstring(searchString,"def");