$.validator.addMethod(
"ninumber",
function(value, element) {
return this.optional(element)
|| /^[A-CEGHJ-PR-TW-Z]{1}[A-CEGHJ-NPR-TW-Z]{1}[0-9]{6}[A-DFM]{0,1}$/.test(value);
},
"Please enter a valid NI Number."
);
任何人都可以发现代码示例的任何问题吗?对我来说似乎很好,但正确的值仍显示为有错误。我正在使用jQuery Validation插件为NI编号添加方法。
答案 0 :(得分:3)
它不允许空格,因此您需要先删除它们。我刚刚检查过并验证了我的NI编号,但只是没有空格。
所以,你想要的东西是:
/^[A-CEGHJ-PR-TW-Z]{1}[A-CEGHJ-NPR-TW-Z]{1}[0-9]{6}[A-DFM]{0,1}$/.test(value.replace(/\s/g, ''));
如果真的希望将其保留为单行验证。就个人而言,我会重新格式化/重构:
$.validator.addMethod("ninumber", function(value, element) {
var regexp = /^[A-CEGHJ-PR-TW-Z]{1}[A-CEGHJ-NPR-TW-Z]{1}[0-9]{6}[A-DFM]{0,1}$/;
var strippedValue = value.replace(/\s/g, '');
return this.optional(element) || regexp.test(strippedValue);
}, "Please enter a valid NI Number.");