使用indexOf()搜索多个字符串并添加到Array

时间:2016-12-28 19:05:49

标签: jquery

我有以下工作代码。

indexMatches = [];
function getMatchIndexes(str, toMatch) {
    var toMatchLength = toMatch.length,
        match,
        i = 0;

    while ((match = str.indexOf(toMatch, i)) > -1) {
        indexMatches.push(toMatch);
        i = match + toMatchLength;
    }
    return indexMatches;
}

console.log(getMatchIndexes("this is code [table which has [table table [row and rows [table]", "[table"));

在这里小提琴:https://jsfiddle.net/vqqq1wj4/

但是我必须匹配2个字符串来搜索[table和[row并添加到索引。目前它只接受1个参数进行搜索。我尝试添加相同的OR运算符,但它不起作用。理想情况下,我应该编写以下代码

getMatchIndexes(str, "[table","[row");

它将根据它们的索引和位置正确返回下面的数组。

 [ "[table", "[table", "[row", "[table" ]

1 个答案:

答案 0 :(得分:3)

String#match与使用字符串生成的正则表达式一起使用。

ext install overtype

参考:Converting user input string to regular expression