求个严格的新老身份证的正则匹配
- 提问者网友:玫瑰园
- 2021-07-31 12:53
- 五星知识达人网友:白昼之月
- 2021-07-31 13:16
下面这个正则对身份证号的判断使用较广
^[1-9]([0-9]{14}|[0-9]{17})$
- 1楼网友:酒醒三更
- 2021-07-31 16:46
- 2楼网友:孤独入客枕
- 2021-07-31 16:26
idCard是接收身份证的参数~
然后如下判断~
if(idCard=="") document.form1.idCardPrompt.value="身份证号码不允许为空。请输入您的身份证号码。"; else if(idCard.length==15) { if(reID15.test(idCard)==false) document.form1.idCardPrompt.value="身份证号码输入有误,请核对后重新输入。"; else if(reID15.test(idCard)==true) document.form1.idCardPrompt.value=""; } else if(idCard.length==18) { var s,y,jym; var n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,n18; var str=new String(idCard); n1=str.charAt(0); n2=str.charAt(1); n3=str.charAt(2); n4=str.charAt(3); n5=str.charAt(4); n6=str.charAt(5); n7=str.charAt(6); n8=str.charAt(7); n9=str.charAt(8); n10=str.charAt(9); n11=str.charAt(10); n12=str.charAt(11); n13=str.charAt(12); n14=str.charAt(13); n15=str.charAt(14); n16=str.charAt(15); n17=str.charAt(16); n18=str.charAt(17);
s=n1*7+n2*9+n3*10+n4*5+n5*8+n6*4+n7*2+n8*1+n9*6+n10*3+n11*7+n12*9+n13*10+n14*5+n15*8+n16*4+n17*2; y=s % 11; switch(y) { case 0: {jym=1;break;} case 1: {jym=0;break;} case 2: {jym="x";break;} case 3: {jym=9;break;} case 4: {jym=8;break;} case 5: {jym=7;break;} case 6: {jym=6;break;} case 7: {jym=5;break;} case 8: {jym=4;break;} case 9: {jym=3;break;} case 10: {jym=2;break;} }
if(jym==n18) { if(reID18.test(idCard)==false) document.form1.idCardPrompt.value="身份证号码输入有误,请核对后重新输入。"; else if(reID18.test(idCard)==true) document.form1.idCardPrompt.value=""; } else document.form1.idCardPrompt.value="身份证号码输入有误,请核对后重新输入。";
} else document.form1.idCardPrompt.value="身份证号码位数不对,身份证号码位数为15位或18位。";
- 3楼网友:轻雾山林
- 2021-07-31 15:38
18位身份证前4位为所在市的代码 5,6位是所在区代码 7-14是8位出生日期 15-17是你在派出所的出生顺序码 最后一位是校验位。
- 4楼网友:你可爱的野爹
- 2021-07-31 14:56