在javascript中使用正则表达式匹配一段字符串时出现奇怪的现象,匹配结果为true和false反复出现。
javascript代码:
function check() {
var lists = document.getElementsByName("orders");
var flag = false;
var pattern = /^(\d+)$/ig;
for(var v = 0; v < lists.length; ++v) {
var val = lists[v].value;
var result = pattern.test(val);
alert("-" + result + "-" + val + "-" + v + "-");
if(tt) {
if(val != 0) {
flag == true;
}
} else {
alert("订货量填写有误,请仔细核对!");
//return false;
}
}
if(flag == false) {
alert("此次没有订货数量,请核对!");
}
}
所以,解决此问题,可以去掉pattern后面的g,或者在pattern执行完后手动将lastIndex置为0。