很简单
function CheckCardNo(card){
// 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
if(reg.test(card) === false)
{
alert("身份证输入不合法")
return false
}
}
CheckCardNo('123456778')
18位身份证:先用这个表达式取出出生年份
\d{6}(\d{4})\d{8}
$1就是四位的年份,比如1986
在用这个表达式判断是不是在1900-2000之间
(19\d{2}|2000)
15位身份证,这种身份证1900和2000是区分不出来的,这种身份证年份只用后两位表示
先用这个表达式取出出生年份
\d{6}(\d{2})\d{7}
$1就是二位的年份,比如86
在用这个表达式判断是不是在1900-2000之间
\d{2}
这是主要的方法,细节就不写啦,呵呵,我还有活,祝你好运