我正在尝试使用以下规则验证名为phone_number的字段:
第一个数字应该是3然后是另外9个数字所以总共10个数字示例:3216549874
或者可以是7个数字1234567
这里我有我的代码:
if (!($("#" + val["htmlId"]).val().match(/^3\d{9}|\d{7}/)))
missing = true;
为什么不起作用:(当我把它放入在线正则表达式检查器显示良好。
答案 0 :(得分:6)
您应该使用test而不是匹配,这是正确的代码:
.test(/^(3\d{9}|\d{7})$/)
匹配将查找所有事件,而测试只会检查是否至少有一个可用(从而验证您的号码)。
答案 1 :(得分:2)
不要被管道弄糊涂。必须结束每个表达式
if (!($("#" + val["htmlId"]).val().match(/^3\d{9}/|/\d{7}/)))
missing = true;
答案 2 :(得分:2)
我有类似的问题,我的解决方案就是写出来:
if (/^(3\d{9}|\d{7})$/.test($("#" + val["htmlId"]).val()) == false) {
missing = true;
}
答案 3 :(得分:1)
试试这个,它更严格一些。
.match(/^(3\d{9}|\d{7})$/)