Javascript - 查找字符串中特定单词出现的位置(不是第一个或最后一个)

时间:2017-10-11 21:16:31

标签: javascript string indexof lastindexof

如果我的字符串中有很多次相同的单词,请说:

“新问题,新主题,新查询,新代码,新语言,新答案”

这里我们有6次“新”这个词,但我想找到第4个“新”的位置。

我知道IndexOf返回第一次出现的位置而LastIndexOf返回最后一次出现的位置,但我怎样才能找到第4次出现的位置???

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用String#indexOf的第二个参数fromIndex,并使用之前找到的位置开始新的搜索。

var string = "new question, new topic, new query, new code, new language, new answer",
    i = 0,
    pos = -1
    
do {
    pos = string.indexOf('new', pos + 1);
    i++;
} while (pos !== -1 && i < 4)

console.log(pos);

答案 1 :(得分:0)

你可以做到

let str = "new question, new topic, new query, new code, new language, new answer"

let re = /new/g;
let myArray, count = 4;
while ((myArray = re.exec(str)) !== null && count--);
console.log(count==-1 && myArray.index);