【发布时间】:2011-12-15 05:28:54
【问题描述】:
在阅读this post 和this doc 之后,我正在尝试编写一个函数,该函数将返回字符串中正则表达式每次出现的索引(在本例中,每次出现一个数字)。我从上面链接的文档中获取了这个代码:
var myRe = /ab*/g;
var str = "abbcdefabh";
var myArray;
while ((myArray = myRe.exec(str)) != null)
{
var msg = "Found " + myArray[0] + ". ";
msg += "Next match starts at " + myRe.lastIndex;
print(msg);
}
把它变成了这样:
var myRe = /([0-9]*)/g;
var str = "gfarg h43kjh arjh 343";
var myArray;
while ((myArray = myRe.exec(str)) != null)
{
var msg = "Found " + myArray[0] + ". ";
msg += "Next match starts at " + myRe.lastIndex;
alert(msg);
}
这将无限循环显示相同的结果。我其实有两个问题。如何显示每个 whole 数字的索引(在我的示例字符串 "gfarg h43kjh arjh 343" 中为 7 和 18)。还有,为什么我当前的代码会无限循环?
【问题讨论】:
标签: javascript regex