请帮看看下面的正则表达式为什么不对?
用正则表达式验证一个多行文本框中的输入,合法的输入包括两种情况:
以1或2开头的8位数字,
或1或2开头的8位数字+","+1至3位数字
如:
20120405
20120102,1
20130506
正则式为这样:
/[1|2]\d{7,7}[,\d{1,3}]?\r?$/
代码如下:
var aStr = str.split("\n");
if (aStr.length < 1) {
alert('请输入数据!');
return false;
} else {
for (var i = 0; i < aStr.length; i++) {
if (!(/[1|2]\d{7,7}[,\d{1,3}]?\r?$/.test(aStr[i]))) {
alert("第 " + (i + 1) + " 行输入错误!\n" + aStr[i]);
return false;
break;
}
}
return true;
}
结果验证后说第二行输入错识:
20120102,1
是怎么回事?