大陆,港澳台身份证正则校验(在线测试地址http://c.runoob.com/front-end/854?optionGlobl=global)
备注:香港身份证号码由三部分组成:一个英文字母;6个数字;括号及0-9中的任一个数字,或者字母A。括号中的数字或字母A,是校验码,用于检验括号前面的号码的逻辑正确性(R015706(5),R015706(A))
//检查身份号码是否符合规范,包括长度,类型
isCardNo(card) {
//身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
var reg = /(^\d{15}$)|(^\d{17}(\d|X)$)/; //大陆身份证
var patternHongkong = /^[A-Za-z][0-9]{6}\(([\d{1}|A])\)$/;//香港身份证
var patternTaiwan = /^[a-zA-Z][0-9]{9}$/;//台湾
var patternMacao = /^[1|5|7][0-9]{6}[0−9Aa]/;//澳门
// var HKtxz = /^[HMhm]{1}([0-9]{10}|[0-9]{8})$/;
var HKtxz = /^([A-Z]\d{6,10}(\w1)?)$/; //港澳通行证
if (reg.test(card) === false && HKtxz.test(card) === false && patternHongkong.test(card) === false && patternTaiwan.test(card) === false && patternMacao.test(card) === false) {
return false;
}
return true;
},