ynduanlian 2014年02月11日
请帮看看下面的正则表达式为什么不对?
用正则表达式验证一个多行文本框中的输入,合法的输入包括两种情况:
以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

是怎么回事?
...全文
61 点赞 收藏 3
写回复
3 条回复

还没有回复,快来抢沙发~

发动态
发帖子
JavaScript
创建于2007-09-28

5.1w+

社区成员

22.3w+

社区内容

Web 开发 JavaScript
社区公告
暂无公告