正則表達式之18位身份證號,手機號,郵箱,日期


匹配18位身份證號,正則表達式如下:

/^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|31)|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}([0-9]|x|X)$/

 

說明:現在身份證號都已經是18位了,沒必要再去考慮匹配15位。

 

18位身份證號組成:6位地區號+4位年+4位月日+3位編號+1位新生成編號

 

邏輯:

1)6位地區號:首位非0,后五位數字。對應正則:[1-9][0-9]{5}

2)4位年:19或20開頭,后兩位數字。對應正則:(19|20)[0-9]{2}

3)4位月日:

  i)大月31天。對應正則:(01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|31)

  ii)小月30天。對應正則:(04|06|09|11)(0[1-9]|[1-2][0-9]|30)

  iii)2月28天或29天。對應正則:02(0[1-9]|[1-2][0-9])

4)3位編號:三位數字。對應正則:[0-9]{3}

5)1位新生成編號:數字或x。對應正則:([0-9]|x|X)

 

現僅剩以下缺點(不太用到):

1)未匹配閏年

2)未匹配前三位地區編號是否存在

 

 

最后附上:

【手機號正則】

/^1[3-8][0-9]{9}$/

 

【郵箱正則】

/^\w+([.]\w+)?[@]\w+[.]\w+([.]\w+)?$/

 

【網址正則】

(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]

 

【日期】

 /^((19|20)[0-9]{2})-((0[1-9])|10|11|12)-(([0-2][0-9])|30|31)$/

 

【文件名/:*?'"<>\】

/\/|:|\*|\?|'|"|<|>|\\/

 

【2位小數】

/^[0-9]+(.[0-9]{1,2})?$/


免責聲明!

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



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