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、嚴格的驗證:
正規表示式驗證身份證
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...
正規表示式 郵箱和身份證
1.字元類 1.abc 代表a或者b,或者c字元中的乙個。abc 代表除a,b,c以外的任何字元。a z 代表a z的所有小寫字元中的乙個。a z 代表a z的所有大寫字元中的乙個。0 9 代表0 9之間的某乙個數字字元。a za z0 9 代表a z或者a z或者0 9之間的任意乙個字元。a dm...