搜索字符串中字符串的所有实例

sai*_*sai 12 javascript search indexof

您好我正在使用indexOf方法来搜索另一个字符串中是否存在字符串.但我想得到字符串所在的所有位置?是否有任何方法可以获取字符串所在的所有位置?

<html>
<head>
    <script type="text/javascript">
        function clik()
        {
            var x='hit';
            //document.getElementById('hideme').value ='';
            document.getElementById('hideme').value += x;
            alert(document.getElementById('hideme').value);
        }

        function getIndex()
        {
            var z =document.getElementById('hideme').value;
            alert(z.indexOf('hit'));
        }
    </script>
</head>
<body>
    <input type='hidden' id='hideme' value=""/>
    <input type='button' id='butt1' value="click click" onClick="clik()"/>
    <input type='button' id='butt2' value="clck clck" onClick="getIndex()"/>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

有没有办法获得所有职位?

cic*_*cic 33

尝试类似的东西:

var regexp = /abc/g;
var foo = "abc1, abc2, abc3, zxy, abc4";
var match, matches = [];

while ((match = regexp.exec(foo)) != null) {
  matches.push(match.index);
}

console.log(matches);
Run Code Online (Sandbox Code Playgroud)


Con*_*501 13

这是一个工作功能:

function allIndexOf(str, toSearch) {
    var indices = [];
    for(var pos = str.indexOf(toSearch); pos !== -1; pos = str.indexOf(toSearch, pos + 1)) {
        indices.push(pos);
    }
    return indices;
}
Run Code Online (Sandbox Code Playgroud)

使用示例:

> allIndexOf('dsf dsf kfvkjvcxk dsf', 'dsf');
[0, 4, 18]
Run Code Online (Sandbox Code Playgroud)