我在输入字段中使用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
或{{1开头的任何以9
,09
,63
,(+63)
开头的数字}}
例如,它有效(+63) 9
,但不带括号
我认为比赛正则表达式有误
答案 0 :(得分:2)
^(9|09|\+?639|\(\+63\)\s?9?)\d{9}$
这可以验证:
+639123456789
9123456789
(+63)9123456789
(+63) 9123456789
(+63)123456789
(+63) 123456789