Javascript - 查找字符串中单词特定出现的位置(不是第一个或最后一个)
Javascript - Find position of specific occurrence of a word in a string (not first or last)
如果我有一个字符串有很多次相同的词,让我们说:
"new question, new topic, new query, new code, new language, new answer"
这里有单词"new" 6次,但我想找到第4次"new"的位置。
我知道 IndexOf returns 第一次出现的位置和 LastIndexOf returns 最后一次出现的位置,但是如何找到第 4 次出现的位置???
谢谢!
您可以使用 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);
你可以做到
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);
如果我有一个字符串有很多次相同的词,让我们说:
"new question, new topic, new query, new code, new language, new answer"
这里有单词"new" 6次,但我想找到第4次"new"的位置。
我知道 IndexOf returns 第一次出现的位置和 LastIndexOf returns 最后一次出现的位置,但是如何找到第 4 次出现的位置???
谢谢!
您可以使用 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);
你可以做到
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);