2017-10-11 42 views
1

,如果我有它有很多次同一个词的字符串,可以说一个字的具体出现的位置:使用Javascript - 查找的字符串(不是第一个或最后一个)

“的新问题,新课题,新的查询,新的代码,新的语言,新的答案“

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

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

谢谢!

+3

重复这个问题,请在这里看到:https://stackoverflow.com/questions/14480345/how第一次出现的字符串 – Nick

+0

[如何获得第n次出现次数nce在一个字符串?](https://stackoverflow.com/questions/14480345/how-to-get-the-nth-occurrence-in-a-string) –

回答

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);

+0

这效果很好,谢谢! – edwin26

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);

+0

男人,我讨厌'while'循环。 –

+0

为什么不直接'&&计数 - '如果在做代码高尔夫球...... –

相关问题