前段時間作一個項目,須要對各類經常使用證件進行驗證。而港澳通行證,臺灣通行證,護照這些證件,在網上並無找到作正則驗證的方法。後來從12306網站的代碼中發現了這些驗證規則,結合validator這個驗證插件寫了一些代碼,有須要的朋友能夠參考。javascript
// 身份證驗證 jQuery.validator.addMethod("isIdCard", function(value, element, type) { if ($(type).val() === '1') { var re = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; return this.optional(element) || (re.test(value)); } else { return true; } }, "身份證格式不正確"); // 護照驗證 jQuery.validator.addMethod("isPassport", function(value, element, type) { if ($(type).val() === '2') { var re1 = /^[a-zA-Z]{5,17}$/; var re2 = /^[a-zA-Z0-9]{5,17}$/; return this.optional(element) || (re2.test(value)) || re1.test(value); } else { return true; } }, "護照格式不正確"); // 港澳通行證驗證 jQuery.validator.addMethod("isHKMacao", function(value, element, type) { if ($(type).val() === '3') { var re = /^[HMhm]{1}([0-9]{10}|[0-9]{8})$/; return this.optional(element) || (re.test(value)); } else { return true; } }, "港澳通行證格式不正確"); // 臺灣通行證驗證 jQuery.validator.addMethod("isTaiwan", function(value, element, type) { if ($(type).val() == "4") { var re1 = /^[0-9]{8}$/; var re2 = /^[0-9]{10}$/; return this.optional(element) || (re1.test(value)) || (re2.test(value)) } else { return true; } }, "臺灣通行證格式不正確");