在JavaScript正则表达式匹配中查找索引

13

我在 JavaScript 中有一个字符串如下所示

var str = "This is my test string is Ingrédients";

字符串中的子字符串"Ingrédients"也可以写作"Ingredients"。 如何通过应用正则表达式(Ingr[ée]dients)获取上述字符串中子字符串"Ingrédients"的索引。

2个回答

30
如果你只想在字符串中找到正则表达式的第一个匹配项,可以使用 search。如果想要查找所有出现的匹配项,则可以重复使用 exec 并查询匹配项的 index 值。

这里有一个示例:(在ideone.com上查看):

text = "I'm cooking; these are my Ingredients! I mean Ingrédients, yes!";
//      0123456789012345678901234567890123456789012345678901234567890123

re = /Ingr[ée]dients/g;

print(text.search(re)); // "26"
print(text.search(re)); // "26" again

while (m = re.exec(text)) {
   print(m.index);
} // "26", "46"

参考资料


非常感谢 - 我不认为有一种内置的方法可以只获取包含索引信息的所有命中项的数组? - devios1
肯定有chaiguy:只需迭代while循环并将结果推入数组即可。如果您喜欢,它可以在一行上进行。 - Tom McKenzie

-2

使用搜索:

alert(str.search(/Ingr[ée]dients/));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接