2011-06-03 46 views
3
$.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验证插件为NI编号添加方法。NI号码验证Jquery

回答

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."); 
+0

感谢您的及时回复!非常感谢 – Rachel 2011-06-03 16:04:23

+0

@Rachel没有probs,高兴地帮助:) – Skilldrick 2011-06-03 16:17:10