我已将以下内容写入我的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页面或互联网上其他地方似乎都没有涉及到这一点。
答案 0 :(得分:1)
看起来你的正则表达式只是缺少一个空格。
见下文比较:
A-Z
您似乎还缺少一个短划线:AZ
而不是{{1}}。