前言
開發過程中,常常需要對一些輸入信息進行有效性驗證,使用正則表達式進行校驗是最簡單、效率最高的方式了,下面就來看看15/18位身份證號碼驗證的正則表達式吧。
介紹
xxxxxx yyyy MM dd 375 0 十八位
xxxxxx yy MM dd 75 0 十五位
地區: [1-9]/d{5}
年的前兩位: (18|19|([23]/d))
1800-2399
年的后兩位: /d{2}
月份: ((0[1-9])|(10|11|12))
天數: (([0-2][1-9])|10|20|30|31)
閏年不能禁止29+
三位順序碼: /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}$
總:
( ^[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位時全為數字,18位前17位為數字,最后一位是校驗位,可能為數字或字符X var reg = /(^/d{15}$)|(^/d{18}$)|(^/d{17}(/d|X|x)$)/; if(reg.test(card) === false) { alert("身份證輸入不合法"); return false; } }
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。
|
新聞熱點
疑難解答