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

ale*_*lex 13 javascript regex

我在javascript中有这样的字符串

var str = "This is my test string is Ingrédients";
Run Code Online (Sandbox Code Playgroud)

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

pol*_*nts 31

如果您只想在字符串中找到第一次出现的正则表达式匹配,则可以使用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"
Run Code Online (Sandbox Code Playgroud)

参考