JavaScript indexOf 从搜索字符串的末尾

JavaScript indexOf from end of search string

本文关键字:字符串 搜索 indexOf JavaScript      更新时间:2023-09-26

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

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

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

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

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

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

我用一个简单的函数对此进行了排序,但是在编写它之后,我只是认为它是如此简单和有用,以至于我不明白为什么它还没有实现到 JavaScript 中!?

String.prototype.indexOfEnd = function(string) {
    var io = this.indexOf(string);
    return io == -1 ? -1 : io + string.length;
}

这将有预期的结果

'abcdefghijklmnopqrstuvwxyz'.indexOfEnd('def'); //6

编辑也可以包括 lastIndexOf 实现

String.prototype.lastIndexOfEnd = function(string) {
    var io = this.lastIndexOf(string);
    return io == -1 ? -1 : io + string.length;
}
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");