摘要:例也可通過(guò)驗(yàn)證,而月并不存在日校驗(yàn)碼是由位本體碼計(jì)算得出,方案并未校驗(yàn)此碼這個(gè)鏈接中的位正則表達(dá)式錯(cuò)的,最后順序碼應(yīng)該是位。
身份證正則表達(dá)式
在項(xiàng)目中遇到身份證號(hào)碼驗(yàn)證,百度了一些資料,太簡(jiǎn)單的和太復(fù)雜的pass,綜合了一些案例,取長(zhǎng)補(bǔ)短,形成了個(gè)折中版本的,正則表達(dá)式如下:
var reg =/(^[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{3}$)/; if(!reg.test(IDCard)){ this.warnTips({txt:"請(qǐng)輸入正確的身份證號(hào)碼"}); return false; }身份證介紹
身份證分15位和18位的,那么這兩個(gè)版本有什么區(qū)別呢?
第二代身份證,18位 XXXXXX yyyy MM dd 375 0
第一代身份證,15位 XXXXXX yy MM dd 75 0
從圖片中可以看出,
1-6位為地區(qū)編碼 7-10 出身年份 4位,第一代身份證只有兩位 11-14 出身年月日 4位 15-18 順序碼+校驗(yàn)碼 18位身份證4位,最后一位可能是X, 15位身份證順序碼3位,沒有校驗(yàn)碼表達(dá)式介紹
看18位的身份證正則: [1-9]d{5} 前六位地區(qū),非0打頭 (18|19|([23]d))d{2} 出身年份,覆蓋范圍為 1800-3999 年 ((0[1-9])|(10|11|12)) 月份,01-12月 (([0-2][1-9])|10|20|30|31) 日期,01-31天 d{3}[0-9Xx]: 順序碼三位 + 一位校驗(yàn)碼 15位的身份證: [1-9]d{5} 前六位地區(qū),非0打頭 d{2} 出生年份后兩位00-99 ((0[1-9])|(10|11|12)) 月份,01-12月 (([0-2][1-9])|10|20|30|31) 日期,01-31天 d{3} 順序碼三位,沒有校驗(yàn)碼表達(dá)式存在不足
這個(gè)身份證表達(dá)式只是折中版本的校驗(yàn),滿足15位和18位身份證校驗(yàn)的基本需求了,但是還存在一些不足,網(wǎng)上有非常精確的身份證校驗(yàn),但是代碼太多,各種js驗(yàn)證,參考資料鏈接中有提供。
地址碼判定不夠精確。例:我國(guó)并不存在16,26開頭的地區(qū),卻可通過(guò)驗(yàn)證
日期判定不夠精確。例:19490231也可通過(guò)驗(yàn)證,而2月并不存在31日
校驗(yàn)碼是由17位本體碼計(jì)算得出,方案1并未校驗(yàn)此碼
ps: 這個(gè)鏈接中的15位正則表達(dá)式錯(cuò)的,最后順序碼應(yīng)該是3位。
15/18位身份證號(hào)碼驗(yàn)證的正則表達(dá)式總結(jié)
身份證號(hào)碼的正則表達(dá)式及驗(yàn)證詳解(JavaScript,Regex)
大陸--身份證(本國(guó)人)正則表達(dá)式
15/18位身份證號(hào)碼正則表達(dá)式(詳細(xì)版)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/98409.html
摘要:簡(jiǎn)言在做用戶實(shí)名驗(yàn)證時(shí),常會(huì)用到身份證號(hào)碼的正則表達(dá)式及校驗(yàn)方案。身份證號(hào)碼說(shuō)明居民身份證號(hào)碼,正確正式的稱謂應(yīng)該是公民身份號(hào)碼。也有說(shuō)法表述開頭是外國(guó)人取得中國(guó)身份證號(hào)碼的前兩位編碼,但本人并未得到證實(shí)。 簡(jiǎn)言 在做用戶實(shí)名驗(yàn)證時(shí),常會(huì)用到身份證號(hào)碼的正則表達(dá)式及校驗(yàn)方案。本文列舉了兩種驗(yàn)證方案,大家可以根據(jù)自己的項(xiàng)目實(shí)際情況,選擇適合的方案。 showImg(https://seg...
摘要:下面分別分析出生日期和校驗(yàn)位檢查生日日期是否正確輸入的身份證號(hào)里出生日期不對(duì)將位身份證轉(zhuǎn)成位校驗(yàn)位按照的規(guī)定生成,可以認(rèn)為是數(shù)字。 一、創(chuàng)建方式 字面量創(chuàng)建方式var reg = /abc/;對(duì)象RegExp,適合正則表達(dá)式模式不確定的時(shí)候var reg = new RegExp(abc); 二、表達(dá)式模式(部分) 常用: 1. w匹配一個(gè)單字字符(字母,數(shù)字,下劃線) W2. d匹配...
摘要:常用正則表達(dá)式及其思路詳解注意正則表達(dá)式的匹配超大文本的效率比較低,為了匹配效率加快,最好是是先精確到小模塊,再使用正則匹配,這樣搜索效率會(huì)快一點(diǎn)。出生日期碼表示編碼對(duì)象出生的年月日,其中年份用四位數(shù)字表示,年月日之間不用分隔符。 常用正則表達(dá)式及其思路詳解 注意:正則表達(dá)式的匹配超大文本的效率比較低,為了匹配效率加快,最好是是先精確到小模塊,再使用正則匹配,這樣搜索效率會(huì)快一點(diǎn)。 v...
摘要:驗(yàn)證是否含有等字符只能輸入漢字驗(yàn)證地址驗(yàn)證驗(yàn)證電話號(hào)碼正確格式為,,,,,。驗(yàn)證身份證號(hào)位或位數(shù)字驗(yàn)證一年的個(gè)月正確格式為和驗(yàn)證一個(gè)月的天正確格式為和。 一、校驗(yàn)數(shù)字的表達(dá)式 1 數(shù)字:^[0-9]*$ 2 n位的數(shù)字:^d{n}$ 3 至少n位的數(shù)字:^d{n,}$ 4 m-n位的數(shù)字:^d{m,n}$ 5 零和非零開頭的數(shù)字:^(0|1-9*)$ 6 非零開頭的最多帶兩位小數(shù)的數(shù)字...
摘要:前言在我們做用戶授權(quán)登錄微信授權(quán),以及根據(jù)對(duì)應(yīng)瀏覽器做對(duì)應(yīng)的操作的時(shí)候,經(jīng)常會(huì)遇到需要判斷用戶使用的瀏覽器的需求,以及在需要用戶輸入信息的時(shí)候,有需要驗(yàn)證的一些正則。 前言 在我們做用戶授權(quán)登錄(微信,qq授權(quán)),以及根據(jù)對(duì)應(yīng)瀏覽器做對(duì)應(yīng)的操作的時(shí)候,經(jīng)常會(huì)遇到需要判斷用戶使用的瀏覽器的需求,以及在需要用戶輸入信息的時(shí)候,有需要驗(yàn)證的一些正則。如果喜歡的話可以點(diǎn)波贊/關(guān)注,支持一下,希...
閱讀 7579·2023-04-25 14:36
閱讀 1746·2021-11-22 09:34
閱讀 2136·2019-08-30 15:55
閱讀 3138·2019-08-30 11:19
閱讀 1301·2019-08-29 15:17
閱讀 544·2019-08-29 12:47
閱讀 2984·2019-08-26 13:38
閱讀 2621·2019-08-26 11:00