2

我还没有看到使用 jQuery validate 插件验证电话号码和分机的良好 RegEx。有没有人对此有很好的解决方案?可以向用户显示所需的格式:即

Example: (555) 555-1234 x 1234

4

3 回答 3

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");

您必须自己决定是否允许扩展是可选的(我将其保留为可选)。

于 2012-04-27T20:10:58.353 回答
1

根据您的帖子,您可以使用类似于以下的正则表达式:

([0-9]{3}) [0-9]{3}-[0-9]{4} x [0-9]{4}

这可能不完全正确......您可能必须使用一些转义字符,但这应该是基本思想。

更多阅读在这里

于 2012-04-27T17:58:00.610 回答
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);
},
于 2012-04-30T20:48:59.230 回答