10

JavascriptString.indexOf返回字符串中搜索词的索引。

它从搜索字符串的开头返回第一次找到字符串的位置的索引。例子:

'abcdefghijklmnopqrstuvwxyz'.indexOf('def') = 3;

但我需要从搜索结束时获取它,例如:

'abcdefghijklmnopqrstuvwxyz'.indexOf('def') = 6; //essentially index + searchString.length

这样我就可以String.substr从返回的值中获取该点之后的字符串。

4

2 回答 2

14

我用一个简单的函数对它进行了排序,但是写完之后,我只是觉得它很简单,很有用,我不明白为什么它还没有在 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;
}
于 2013-09-19T11:29:02.937 回答
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"); 
于 2013-09-19T12:10:50.253 回答