【问题标题】:jQuery Validate UK PostcodejQuery 验证英国邮政编码
【发布时间】:2016-03-15 15:22:12
【问题描述】:

我已经构建了一个脚本来通过邮政编码查找洪水区域,并且我正在寻找验证该字段,我目前有一个自定义的 jQuery Validate 方法,如下所示。

jQuery.validator.addMethod("postcodeUK", function (value, element) {
    return this.optional(element) || /[A-z]{1,2}[0-9]{1,2} ?[0-9][A-Z]{2}/i.test(value);
}, "Please specify a valid Postcode");

唯一的问题是我需要中间的空间,例如 AB12 3CD 或 BC1 9GH。目前允许 AB123CD 或 BC19GH。

【问题讨论】:

    标签: jquery regex jquery-validate


    【解决方案1】:

    jQuery Validate 插件的the additional-methods.js file 中已经有一个经过验证的 方法用于验证英国邮政编码。包含this file 或简单地将方法复制到您的代码中,然后使用postcodeUK 规则。

    // Matches UK postcode. Does not match to UK Channel Islands that have their own postcodes (non standard UK)
    $.validator.addMethod( "postcodeUK", function( value, element ) {
        return this.optional( element ) || /^((([A-PR-UWYZ][0-9])|([A-PR-UWYZ][0-9][0-9])|([A-PR-UWYZ][A-HK-Y][0-9])|([A-PR-UWYZ][A-HK-Y][0-9][0-9])|([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY]))\s?([0-9][ABD-HJLNP-UW-Z]{2})|(GIR)\s?(0AA))$/i.test( value );
    }, "Please specify a valid UK postcode" );
    

    【讨论】:

    • @sanjeetbisht - 如果无法正常工作,请向开发人员提交错误报告。
    【解决方案2】:

    您已通过? 将空格设为可选。如果您需要它,请将其删除 ?

    其他几点说明:

    • [A-z] 不仅是 A-Z 和 a-z,还包括 [\]_ 和反引号(Za 之间的字符)。由于您使用的是i 标志,因此您需要[A-Z][a-z]

    • 您可能希望开头的 ^ 和结尾的 $ 匹配整个输入,而不仅仅是一个子集。

    Example on regex101.com (你不需要我在那里使用的gm 标志,这样我就可以在测试区域显示多个示例)

    【讨论】:

    • 谢谢,太好了! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多