js驗證身份證號碼

2022-07-23 01:57:27 字數 3358 閱讀 9403

1

、簡單的正規表示式:(1

)preg_match(

"/^(\d|\d|\dx)$/

",$id_card) (2

)preg_match(

"/^(\d)(18|19|20)?(\d)([01]\d)([0123]\d)(\d)(\d|x)?$/

",$id_card) (3

)preg_match(

"/(^\d$/)|(\d(?:\d|x|x)$/),$id_card)

2、複雜並且嚴格一些的驗證:

//這個可以驗證15位和18位的身份證,並且包含生日和校驗位的驗證。   

//如果有興趣,還可以加上身份證所在地的驗證,就是前6位有些數字合法有些數字不合法。 

function isidcardno(num) $)|

(^\d([0-

9]|x)$)

/.test(num)))    //

校驗位按照iso 7064:1983.mod 11-2的規定生成,x可以認為是數字10。 

//下面分別分析出生日期和校驗位 

var len, re; 

len 

=num.length; 

if(len 

==15

) )(\d)(\d)(\d)(\d)$

/); 

var arrsplit 

=num.match(re); 

//檢查生日日期是否正確 

var dtmbirth 

=new

date('19

'+arrsplit[2] 

+'/'

+arrsplit[3] 

+'/'

+arrsplit[

4]); 

var bgoodday; 

bgoodday 

=(dtmbirth.getyear() 

==number(arrsplit[

2])) 

&&((dtmbirth.getmonth() +1

) ==

number(arrsplit[

3])) 

&&(dtmbirth.getdate() 

==number(arrsplit[

4])); if(

!bgoodday) 

else

num 

+=arrch[ntemp %11

];   

return

num;   

}   

} if

(len 

==18

) )(\d)(\d)(\d)(\d)([0-

9]|x)$

/); 

var arrsplit 

=num.match(re); 

//檢查生日日期是否正確 

var dtmbirth 

=new

date(arrsplit[2] 

+"/"

+arrsplit[3] 

+"/"

+arrsplit[

4]); 

var bgoodday; 

bgoodday 

=(dtmbirth.getfullyear() 

==number(arrsplit[

2])) 

&&((dtmbirth.getmonth() +1

) ==

number(arrsplit[

3])) 

&&(dtmbirth.getdate() 

==number(arrsplit[

4])); if(

!bgoodday) 

else

valnum 

=arrch[ntemp %11

]; if

(valnum 

!=num.substr(

17, 

1)) 

return

num; 

} } 

return

false

; }   

3、嚴格的驗證:

<

script

>

var acity

=function cidinfo(sid)(d

|x)$

/i.test(sid))

return

false

;sid

=sid.replace(/x$

/i,"a

");if(acity[parseint(sid.substr(0,

2))]

==null

)return

"error:非法地區";

sbirthday

=sid.substr(6,

4)+"

-"+number(sid.substr(10,

2))+"

-"+number(sid.substr(12,

2));

var d

=new

date(sbirthday.replace(

/-/g,"/

"))if(sbirthday

!=(d.getfullyear()+"

-"+(d.getmonth()+1

) +"-

"+d.getdate()))

return

"error:非法生日";

for(var i =17

;i>=

0;i 

--) isum 

+=(math.pow(

2,i) %11

) *parseint(sid.charat(17-

i),11)if

(isum%11

!=1)return

"error:非法證號";

return

acity[parseint(sid.substr(0,

2))]+"

,"+sbirthday+"

,"+(sid.substr(16,

1)%2

?"男"

:"女"

)}document.write(cidinfo(

"380524198002300016"),

"");document.write(cidinfo(

"340524198002300019"),

"")document.write(cidinfo(

"340524197711111111"),

"")document.write(cidinfo(

"34052419800101001x"),

"");script

>

js身份證號碼驗證

15位或18位身份證號碼驗證例子 身份證15位編碼規則 dddddd yymmdd xx p dddddd 地區碼 yymmdd 出生年月日 xx 順序類編碼,無法確定 p 性別,奇數為男,偶數為女 身份證18位編碼規則 dddddd yyyymmdd y dddddd 地區碼 yyyymmdd 出...

js驗證身份證號碼

前面定義全域性變數 var checked if checked layer.close loading return 此方法為失去焦點事件 function iscardno 1 9 d 2 d 0 1 9 1 0 2 0 1 9 1 2 0 9 3 0 1 d 0 9xx 號碼規則校驗 if f...

身份證號碼驗證js

功能 驗證身份證號碼是否有效 提 示資訊 未輸入或輸入身份證號不正確!使用 validateidcard obj 返回 0,1,2,3 function validateidcard obj var isum 0 var info var stridno obj var idcardlength s...