您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在JavaScript中找到一个字符串在另一个字符串中所有出现的索引?

如何在JavaScript中找到一个字符串在另一个字符串中所有出现的索引?

var str = “I learned to play the Ukulele in Lebanon.” var regex = /le/gi, result, indices = []; while ( (result = regex.exec(str)) ) { indices.push(result.index); }

我未能在原始问题中发现搜索字符串需要是一个变量。我编写了另一个版本来处理使用的这种情况indexOf,因此您回到了起点。正如Wrikken在评论中所指出的那样,要对具有正则表达式的一般情况执行此操作,您需要转义特殊的正则表达式字符,这时我认为正则表达式解决方案变得比其价值更令人头疼。

function getIndicesOf(searchStr, str, caseSensitive) {

    var searchStrLen = searchStr.length;

    if (searchStrLen == 0) {

        return [];

    }

    var startIndex = 0, index, indices = [];

    if (!caseSensitive) {

        str = str.toLowerCase();

        searchStr = searchStr.toLowerCase();

    }

    while ((index = str.indexOf(searchStr, startIndex)) > -1) {

        indices.push(index);

        startIndex = index + searchStrLen;

    }

    return indices;

}



var indices = getIndicesOf("le", "I learned to play the Ukulele in Lebanon.");



document.getElementById("output").innerHTML = indices + "";


<div id="output"></div>
javascript 2022/1/1 18:19:31 有419人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶