我需要一个输入字段来验证一个10位数的电话号码,不多于10个数字,并删除任何破折号等。
以下是目前的代码:
jQuery.validator.addMethod ("phone", function(phone, element) {
if (phone == null) {
return false;
}
var stripped = phone.replace(/[\s()+-]|ext\.?/gi, "");
// 10 is the minimum number of numbers required
return this.optional(element) || ((/\d{10,10}/i).test(stripped));
}, "*Please enter a valid phone number.");
但是,如果用户输入的数字少于10位,则验证正常,但如果输入的数字超过10,则不会返回错误消息,并且可以提交表单。
任何帮助都会很棒!
谢谢!
答案 0 :(得分:3)
您正在检查字符串中任意位置的10位数字,而不是检查整个字符串是否为10位数而不是其他内容:
return this.optional(element) || ((/^\d{10}$/).test(stripped));
-
^
=字符串的开头
$
=字符串结尾
不需要/i
,只能使用alpha字符。