JavaScript indexOf来自搜索字符串的结尾

时间:2013-09-19 11:29:03

标签: javascript

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

它从搜索字符串的开头返回首次找到字符串的索引。例如:

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

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

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

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

2 个答案:

答案 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");