我没有看到一个好的RegEx使用jQuery验证插件来验证电话号码和扩展名。有没有人有这个很好的解决方案?可以向用户显示所需的格式:即
Example: (555) 555-1234 x 1234
答案 0 :(得分:4)
您可以查看additional-methods.js文件,其中有几个选项。但是它们都不支持扩展,所以你必须修改一个以匹配你想要的(扩展部分为@jahroy建议)。这是一个类似的:
jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
phone_number = phone_number.replace(/\s+/g, "");
return this.optional(element) || phone_number.length > 9 &&
phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})\s*-?[2-9]\d{2}-?\d{4}(\s*x\s*\d{4})?$/);
}, "Please specify a valid phone number");
您必须自己决定是否允许扩展程序是可选的(我将其保留为可选)。
答案 1 :(得分:1)
根据您的帖子,您可以使用与此类似的正则表达式:
([0-9]{3}) [0-9]{3}-[0-9]{4} x [0-9]{4}
这可能不完全正确......你可能不得不使用一些转义字符,但那应该是基本的想法。
更多阅读here。
答案 2 :(得分:0)
// custom extension regex
phone: function(value, element) {
return this.optional(element) || /^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})\s*-?[2-9]\d{2}-?\d{4}(\s*x\s*\d{4})?$/.test(value);
},