xxxxxx yyyy MM dd 375 0 十八位
xxxxxx yy MM dd 75 0 十五位
地區(qū): [1-9]\d{5}
年的前兩位: (18|19|([23]\d)) 1800-2399
年的后兩位: \d{2}
月份: ((0[1-9])|(10|11|12))
天數(shù): (([0-2][1-9])|10|20|30|31)
三位順序碼: \d{3}
兩位順序碼: \d{2}
校驗碼: [0-9Xx]
正則表達式:
十八位:
^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$
十五位:
^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$
簡單的JS驗證示例
function isCardNo(card)
{
// 身份證號碼為15位或者18位吞杭,15位時全為數(shù)字盏浇,18位前17位為數(shù)字,最后一位是校驗位芽狗,可能為數(shù)字或字符X
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if(reg.test(card) === false)
{
alert("身份證輸入不合法");
return false;
}
}