【问题标题】:Javascript - Find position of specific occurrence of a word in a string (not first or last)Javascript - 查找字符串中特定单词出现的位置(不是第一个或最后一个)
【发布时间】:2017-10-11 21:16:30
【问题描述】:

如果我有一个字符串有很多次相同的词,让我们说:

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

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

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

谢谢!

【问题讨论】:

标签: javascript string indexof lastindexof


【解决方案1】:

您可以使用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);

【讨论】:

    【解决方案2】:

    你可以的

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

    【讨论】:

    • 伙计,我讨厌 while 循环。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-31
    • 2013-08-21
    • 1970-01-01
    • 2016-07-06
    • 1970-01-01
    相关资源
    最近更新 更多