2011-06-03 82 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