Parsley.js英国邮政编码检查

时间:2018-01-11 03:54:50

标签: validation parsley.js postal-code

我已将以下内容写入我的Parsley extras文件,以便通过parsley.js进行英国邮政编码验证

//postcode
window.Parsley.addValidator('postcode', {
    requirementType: 'string',
    validateString: function(value, requirement) {
        var postcode = value.match(/^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([AZa-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z]))))[0-9][A-Za-z]{2})$/) || [];
        return postcode.length >= requirement;
    },
    messages: {
         en: 'The postcode entered is invalid.'
    }
});

似乎不接受邮政编码中间的空格,这让我觉得很奇怪,因为我觉得用户总是试图添加这个。

为了澄清,规则I设置中的正则表达式直接来自UK government advice on the issue

我是否有无效功能,或者此正则表达式是否按预期工作?如果其他任何人都使用英国邮政编码,我很感激任何信息,令人惊讶的是,在欧芹github页面或互联网上其他地方似乎都没有涉及到这一点。

1 个答案:

答案 0 :(得分:1)

看起来你的正则表达式只是缺少一个空格。

见下文比较:

A-Z

您似乎还缺少一个短划线:AZ而不是{{1}}。