15/18位身份證號碼驗證的正則表達式總結(詳細版)


前言

開發過程中,常常需要對一些輸入信息進行有效性驗證,使用正則表達式進行校驗是最簡單、效率最高的方式了,下面就來看看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驗證示例

?
1
2
3
4
5
6
7
8
9
10
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 ;
}
}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM