2

我需要一个输入字段来仅验证 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 位,则不会返回错误消息,他们可以提交表单。

任何帮助都会很棒!

谢谢!

4

1 回答 1

3

您正在检查字符串中的任何位置是否有 10 位数字,而是检查整个字符串是否为 10 位数字,而不是其他:

return this.optional(element) || ((/^\d{10}$/).test(stripped));

-

^= 字符串开头

$= 字符串结尾

不需要/i,这只适用于 alpha 字符。

于 2012-09-06T14:10:37.497 回答