驗證身份證的正規表示式包括15,18 位

2021-06-25 11:20:04 字數 1777 閱讀 2613

//身份證正規表示式(15位)   

isidcard1=/^[1-9]\d((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d$/;   

//身份證正規表示式(18位)   

isidcard2=/^[1-9]\d[1-9]\d((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d$/;

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;

}  

正規表示式驗證身份證

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

c 正規表示式驗證身份證

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

js正規表示式,驗證身份證

身份證校驗 param idcard 身份證號 return 格式是否正確 function validateidcard idcard 0 d 1 0 2 0 1 2 d 3 0 1 d 1 9 d 1 9 d 0 d 1 0 2 0 1 2 d 3 0 1 d d xx 如果通過該驗證,說明身份...