繁体   English   中英

Javascript regexp使用val()。match()方法

[英]Javascript regexp using val().match() method

我正在尝试使用以下规则验证名为phone_number的字段:

第一个数字应为3然后是另外9个数字,因此总共10个数字示例:3216549874

或者可以是7个数字1234567

这里我有我的代码:

        if (!($("#" + val["htmlId"]).val().match(/^3\d{9}|\d{7}/)))
            missing = true;

为什么不工作:(当我把它放入在线正则表达式检查器显示良好。

您应该使用test而不是匹配,这是正确的代码:

.test(/^(3\d{9}|\d{7})$/)

匹配将查找所有事件,而测试将仅检查是否至少有一个可用(从而验证您的号码)。

我有类似的问题,我的解决方案是写它:

if (/^(3\d{9}|\d{7})$/.test($("#" + val["htmlId"]).val()) == false) {
    missing = true;
}

不要被管道弄糊涂。 必须结束每个表达式

if (!($("#" + val["htmlId"]).val().match(/^3\d{9}/|/\d{7}/)))
            missing = true;

http://jsfiddle.net/alfabravoteam/e6jKs/

试试这个,它更严格一些。

.match(/^(3\d{9}|\d{7})$/)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM