前言
開(kāi)發(fā)過(guò)程中,常常需要對(duì)一些輸入信息進(jìn)行有效性驗(yàn)證,使用正則表達(dá)式進(jìn)行校驗(yàn)是最簡(jiǎn)單、效率最高的方式了,下面就來(lái)看看15/18位身份證號(hào)碼驗(yàn)證的正則表達(dá)式吧。
介紹
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)
閏年不能禁止29+
三位順序碼: \d{3}
兩位順序碼: \d{2}
校驗(yàn)碼: [0-9Xx]
正則表達(dá)式
十八位: ^[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}$
總:
( ^[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}$
)
簡(jiǎn)單的JS驗(yàn)證示例
function isCardNo(card)
{
// 身份證號(hào)碼為15位或者18位,15位時(shí)全為數(shù)字,18位前17位為數(shù)字,最后一位是校驗(yàn)位,可能為數(shù)字或字符X
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if(reg.test(card) === false)
{
alert("身份證輸入不合法");
return false;
}
}
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
您可能感興趣的文章:- javascript 身份證號(hào)碼驗(yàn)證函數(shù)(可辨真?zhèn)?,支?5或18位身份證號(hào))測(cè)試誤差為0
- js身份證判斷方法支持15位和18位
- C#小程序15位轉(zhuǎn)18位身份證號(hào)代碼
- 15位和18位身份證JS校驗(yàn)的簡(jiǎn)單實(shí)例
- javascript把15位身份證轉(zhuǎn)成18的函數(shù)
- 將15位身份證補(bǔ)全為18位身份證的算法示例詳解