身份證號正則校驗

2021-10-07 14:43:44 字數 2795 閱讀 2201

正則匹配身份證號 分為18位和15位

****** yyyy mm dd 375 0     十八位

****** yy mm dd 75 0 十五位

地區: [1-9]\d

地區(嚴格): ([1-6][1-9]|50)\d // 補充重慶地區50

年的前兩位: (18|19|([23]\d)) 1800-2399

年的後兩位: \d

月份: ((0[1-9])|(10|11|12))

天數: (([0-2][1-9])|10|20|30|31) 閏年不能禁止29+

三位順序碼: \d

兩位順序碼: \d

校驗碼: [0-9xx]

正規表示式

十八位: ^[1-9]\d(18|19|([23]\d))\d((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d[0-9xx]$

十五位: ^[1-9]\d\d((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d$

同時校驗18位和15位的身份證:

let _idre18 =

/^([1-9]\d(18|19|20)\d((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d[0-9xx]$/

let _idre15 =

/^([1-9]\d\d((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d$/

if( _idre18.

test

(value)

|| _idre15.

test

(value)

)else

簡單校驗:

// 身份證號碼為15位或者18位,15位時全為數字,18位前17位為數字,最後一位是校驗位,可能為數字或字元x 

let reg =

/(^\d$)|(^\d$)|(^\d(\d|x|x)$)/;if

(!reg.

test

(card)

)

1.號碼的結構

公民身份號碼是特徵組合碼,由十七位數字本體碼和一位校驗碼組成。排列順序從左至右依次為:六位數字位址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼。

2.位址碼

表示編碼物件常住戶口所在縣(縣級市、旗、區)的行政區劃**,按gb/t2260的規定執行。

3.出生日期碼

表示編碼物件出生的年、月、日,按gb/t7408的規定執行,年、月、日**之間不用分隔符。

4.順序碼

表示在同一位址碼所標識的區域範圍內,對同年、同月、同日出生的人編定的順序號,順序碼的奇數分配給男性,偶數分配給女性。

5.校驗碼

根據前面十七位數字碼,按照iso 7064:1983.mod 11-2校驗碼計算出來的檢驗碼。

位址碼

1.華北地區:北京市|110000,天津市|120000,河北省|130000,山西省|140000,內蒙古自治區|150000

2.東北地區: 遼寧省|210000,吉林省|220000,黑龍江省|230000

華東地區: 上海市|310000,江蘇省|320000,浙江省|330000,安徽省|340000,福建省|350000,江西省|360000,山東省|370000,台灣省(886)|710000

3.華中地區: 河南省|410000,湖北省|420000,湖南省|430000

4.華南地區:廣東省|440000,廣西壯族自治區|450000,海南省|460000,香港特別行政區(852)|810000,澳門特別行政區(853)|820000

5.西南地區: 四川省|510000,貴州省|520000,雲南省|530000,**自治區|540000,重慶市|500000

6.西北地區: 陝西省|610000,甘肅省|620000,青海省|630000,寧夏回族自治區|640000,新疆維吾爾自治區|650000

中國大陸居民身份證號碼中的位址碼的數字編碼規則為:

第一、二位表示省(自治區、直轄市、特別行政區)。

第三、四位表示市(地級市、自治州、地區、盟及直轄市所屬區和縣的彙總碼)。其中,01-20,51-70表示地級市;21-50表示地區(自治州、盟)。

第五、六位表示縣(區、縣級市、旗)。01-18表示地級市、自治州、地區、盟轄縣級市;21-80表示縣(旗);81-99表示省直轄縣級行政單位。

生日期碼

1.(身份證號碼第七位到第十四位)表示編碼物件出生的年、月、日,其中年份用四位數字表示,年、月、日之間不用分隔符。例如:2023年05月11日就用19810511表示。

順序碼

1.(身份證號碼第十五位到十七位)位址碼所標識的區域範圍內,對同年、月、日出生的人員編定的順序號。其中第十七位奇數分給男性,偶數分給女性。

校驗碼

1.作為尾號的校驗碼,是由號碼編制單位按統一的公式計算出來的,如果某人的尾號是0-9,都不會出現x,但如果尾號是10,那麼就得用x來代替,因為如果用10做尾號,那麼此人的身份證就變成了19位,而19位的號碼違反了國家標準,並且中國的計算機應用系統也不承認19位的身份證號碼。ⅹ是羅馬數字的10,用x來代替10,可以保證公民的身份證符合國家標準。

js校驗身份證號

校驗身份證號是否正確 var vcity function identitycodevalid code 校驗長度,型別 if iscardno code false 檢查省份 if checkprovince code false 校驗生日 if checkbirthday code false ...

身份證號校驗 前端

身份證號碼驗證規則 輸入身份證號碼 提交 如下 身份證號碼驗證規則 title script src script script function 18 19 20 d 0 1 9 10 11 12 0 2 1 9 10 20 30 31 d 0 9xx 先用正則判斷是否為正確的格式if partn...

JS嚴格校驗身份證號

以下是根據身份證號碼編碼規則,使用js對其進行有效性驗證 var wi 7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1 加權因子 var validecode 1,0,10,9,8,7,6,5,4,3,2 身份證驗證位值.10代表x function idcardvali...