javascript中奇怪的正则表达式行为
可能重复:javascript中奇怪的正则表达式行为,javascript,regex,Javascript,Regex,可能重复: 我的代码如下: HTML: <p id="test"></p> JavaScript: var patt = /h/gi; var arr = ["", "2Hour", "4Hour", "8Hour", "Next Business Day"]; var test = document.getElementById("test"); for (var i = 0; i < arr.length; i++) { if (patt.
我的代码如下: HTML:
<p id="test"></p>
JavaScript:
var patt = /h/gi;
var arr = ["", "2Hour", "4Hour", "8Hour", "Next Business Day"];
var test = document.getElementById("test");
for (var i = 0; i < arr.length; i++)
{
if (patt.test(arr[i])) {
test.innerHTML += " " + arr[i];
}
}
var patt=/h/gi;
var arr=[,“2小时”,“4小时”,“8小时”,“下一个工作日];
var测试=document.getElementById(“测试”);
对于(变量i=0;i
但是,得到的输出是2小时8小时
,为什么4小时不是输出的一部分
我的正则表达式有问题吗?我如何解决这个问题
我把它挂在墙上了
引用MDN:
与exec(或与之结合使用)一样,test被多次调用
在上,相同的全局正则表达式实例将前进超过
上一场比赛
目前正在发生的是:
patt
中的正则表达式测试第二个字符串,在索引1
中找到匹配项,并保留此信息test
时,它会尝试从索引1
向前,这显然不产生匹配,因为它有效地测试字符串“our”
0
的指针,允许在下一个
要找到索引1
处的字符串for (var i = 0; i < arr.length; i++)
{
if (/h/gi.test(arr[i])) {
test.innerHTML += " " + arr[i];
}
}
for(变量i=0;i
这将原封不动地“清除指针”,并确保正则表达式对其所测试的每个字符串的行为相同
下面是一个演示:引用MDN:
与exec(或与之结合使用)一样,test被多次调用
在上,相同的全局正则表达式实例将前进超过
上一场比赛
目前正在发生的是:
patt
中的正则表达式测试第二个字符串,在索引1
中找到匹配项,并保留此信息test
时,它会尝试从索引1
向前,这显然不产生匹配,因为它有效地测试字符串“our”
0
的指针,允许在下一个
要找到索引1
处的字符串for (var i = 0; i < arr.length; i++)
{
if (/h/gi.test(arr[i])) {
test.innerHTML += " " + arr[i];
}
}
for(变量i=0;i
这将原封不动地“清除指针”,并确保正则表达式对其所测试的每个字符串的行为相同
下面是一个演示: