身份證驗證 正規表示式

2021-05-22 09:44:02 字數 3375 閱讀 5480

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。

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

varlen, re;

len

=num.length;

if(len

==15

) )(/d)(/d)(/d)(/d)$

/);

vararrsplit

=num.match(re);

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

vardtmbirth

=new

date('19

'+arrsplit[2]

+'/'

+arrsplit[3]

+'/'

+arrsplit[

4]);

varbgoodday;

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)$

/);

vararrsplit

=num.match(re);

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

vardtmbirth

=new

date(arrsplit[2]

+"/"

+arrsplit[3]

+"/"

+arrsplit[

4]);

varbgoodday;

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

>

varacity

=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));

vard

=new

date(sbirthday.replace(

/-/g,"/

"))if(sbirthday

!=(d.getfullyear()+"

-"+(d.getmonth()+1

) +"-

"+d.getdate()))

return

"error:非法生日";

for(

vari =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

>

正規表示式驗證身份證

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 ar...

jquery正規表示式驗證 驗證身份證號碼

需求說明 前端頁面使用正規表示式驗證文字輸入框輸入的身份證號碼是否符合規則。說明 這裡只介紹正規表示式部分,其他部分的 不做介紹。如有其它需求請自行修改即可。步驟一 建立乙個頁面可以是html jsp等,引入jquery 3.2.1.min.js 其他版本亦可 步驟二 編寫正規表示式。部分如下 do...

c 正規表示式驗證身份證

身份證格式驗證,以及15.18位互轉方法 驗證18位身份證格式 返回字串,出錯資訊 public string checkcidinfo18 string cid double isum 0 system.text.regularexpressions.regex rg new system.tex...