前段时间作一个项目,须要对各类经常使用证件进行验证。而港澳通行证,台湾通行证,护照这些证件,在网上并无找到作正则验证的方法。后来从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; } }, "台湾通行证格式不正确");