请帮看看下面的正则表达式为什么不对?

ynduanlian ynduanlian 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
用正则表达式验证一个多行文本框中的输入,合法的输入包括两种情况:
以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

是怎么回事?
...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
ynduanlian
JavaScript 87,983 成员 224,680 内容