JS港澳台身份证校验

        // 港澳台身份证号码格式验证
		// 香港身份证校验
		function isXgIDCard(str){
			var checkIDCard = /^[A-Z]\d{6}\([\dA]\)$/;
// 			console.log(checkIDCard.test(str));
			if (checkIDCard.test(str)){
				var hash = (str.substring(0,1).toUpperCase().charCodeAt() - 64) * 8;
                for(var i = 1;i<=6;i++)
                {
                    hash += parseInt(str.substring(i,i+1)) * (8-i)
                }
                console.log(hash)
                var validateNo = hash%11;
                var ret = "";
                if(validateNo==1){
                    ret = "A";
                }else{
                    ret = 11 - validateNo;
                }
//                 console.log(ret);
                if(str.substring(8,9) == ret){
                	return true;
                }else{
                	return false;
                }      
			}else{
				return false
			}
			
		}
		// 澳门身份证校验
		function isAmIDCard(str) {
			var checkIDCard = /^[1|5|7]\d{6}[(\d)]{3}$/;
// 			console.log(checkIDCard.test(str));
			if (checkIDCard.test(str)){
				return true;
			}else{
				return false;
			}
		}
		// 台湾身份证验证
		function isTwIDCard(idcard) {
			var checkIDCard = /^[A-Z][1-2]\d{8}$/;
// 			console.log(checkIDCard.test(idcard));
			if (checkIDCard.test(idcard)){
				var area={'A':10,'B':11,'C':12,'D':13,'E':14,'F':15,'G':16,'H':17,'J':18,'K':19,'L':20,'M':21,'N':22,'P':23,'Q':24,'R':25,'S':26,'T':27,'U':28,'V':29,'X':30,'Y':31,'W':32,'Z':33,'I':34,'O':35};
				var idcard_array = new Array();        
		        idcard_array = idcard.split("");
		        
		        var jym=parseInt(area[idcard_array[0]]/10)+9*(area[idcard_array[0]]%10)+8*idcard_array[1]+7*idcard_array[2]+6*idcard_array[3]+5*idcard_array[4]+4*idcard_array[5]+3*idcard_array[6]+2*idcard_array[7]+1*idcard_array[8];
		        
		        jym=(10-jym%10)%10;
		        
		        if(idcard_array[9]==jym)
		        {       
		            return true;
		        }else{
		        	return false;
		        }
			}else{
				return false;
			}
		}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值