我使用的是带有输入字段的jquery validate plugin
,该字段要求在其中输入电话号码,我想添加一个带有正则表达式的验证器方法,该方法将有效任何以"9 or 09 or +639 or 639 or (+63) or (+63) 9
"开头、其后为9位的数字
jQuery.validator.addMethod("phoneno", function(phone_number, element) {
phone_number = phone_number.replace(/s+/g, "");
return this.optional(element) || phone_number.length > 9 &&
//phone_number.match(/^((+[1-9]{1,4}[ -]*)|(([0-9]{2,3})[ -]*)|([0-9]{2,4})[ -]*)*?[0-9]{3,4}?[ -]*[0-9]{3,4}?$/);
phone_number.match(/^(9|09|+639|639|((+63)) 9)d{9}$/);
}, "<br />Please specify a valid phone number");
此代码有效,并且可以有效任何以+63
、9
、09
、63
开头的数字,但以(+63)
或(+63) 9
开头的数字除外例如,它有效+639123456789 639123456789 9123456789
,但不带括号
我认为匹配正则表达式中有一个错误
^(9|09|+?639|(+63)s?9?)d{9}$
这验证了:
+639123456789
9123456789
(+63)9123456789
(+63) 9123456789
(+63)123456789
(+63) 123456789