正則表達(dá)式校驗(yàn)身份證號(hào)碼完整代碼示例
^([1-9]\d{5})(\d{4})(\d{2})(\d{2})(\d{3})(\d|X)$
這個(gè)正則表達(dá)式用于匹配中國(guó)身份證號(hào)碼(18位),其中:
^
表示匹配字符串的開頭[1-9]
表示匹配數(shù)字 1-9 中的任意一個(gè)\d{5}
表示匹配任意 5 個(gè)數(shù)字,即區(qū)域碼(\d{4})(\d{2})(\d{2})
表示匹配出生年月日,其中\d{4}
表示匹配任意 4 個(gè)數(shù)字,\d{2}
表示匹配任意 2 個(gè)數(shù)字(\d{3})(\d|X)
表示匹配最后四位,其中\d{3}
表示匹配任意 3 個(gè)數(shù)字,\d|X
表示匹配最后一位數(shù)字或字母 X$
表示匹配字符串的結(jié)尾
所以,這個(gè)正則表達(dá)式可以匹配類似于 “110101198001011234” 的身份證號(hào)碼。
需要注意的是,這個(gè)正則表達(dá)式并不能完全保證身份證
這個(gè)表達(dá)式怎么用到JS上面對(duì)字符串判斷呢
在 JavaScript 中,可以使用 test
方法來(lái)測(cè)試一個(gè)字符串是否匹配一個(gè)正則表達(dá)式。 test
方法會(huì)返回一個(gè)布爾值,如果匹配成功則返回 true
,否則返回 false
。
你可以將上面的正則表達(dá)式編譯成一個(gè) RegExp 對(duì)象,然后調(diào)用它的 test
方法來(lái)判斷字符串是否符合要求。例如:
const password = "110101198001011234"; const regex = /^([1-9]\d{5})(\d{4})(\d{2})(\d{2})(\d{3})(\d|X)$/; const isValid = regex.test(password); if (isValid) { console.log("符合要求"); } else { console.log("不符合要求"); }
在上面的示例代碼中,首先定義了一個(gè)待校驗(yàn)的身份證號(hào)碼 password
,然后將正則表達(dá)式編譯成一個(gè) RegExp
對(duì)象。
接下來(lái)調(diào)用 RegExp
對(duì)象的 test
方法,判斷密碼是否符合正則表達(dá)式的要求。最后輸出校驗(yàn)結(jié)果。
如果你需要在表單中校驗(yàn)身份證號(hào)碼時(shí),可以在表單提交時(shí)觸發(fā)一個(gè)函數(shù)進(jìn)行校驗(yàn)。例如:
const form = document.querySelector("form"); const passwordInput = form.querySelector("#password"); form.addEventListener("submit", onSubmit); function onSubmit(event) { event.preventDefault(); const password = passwordInput.value; const regex = /^([1-9]\d{5})(\d{4})(\d{2})(\d{2})(\d{3})(\d|X)$/; const isValid = regex.test(password); if (isValid) { // 提交表單 form.submit(); } else { // 顯示錯(cuò)誤提示 const error = document.querySelector("#error"); error.textContent = "不符合要求"; } }
在上面的示例代碼中,定義了一個(gè)表單元素和一個(gè)身份證號(hào)碼輸入框。當(dāng)用戶提交表單時(shí),調(diào)用 onSubmit
函數(shù)進(jìn)行身份證號(hào)碼校驗(yàn)。如果身份證號(hào)碼符合要求,則提交表單;否則,顯示一個(gè)錯(cuò)誤提示。
附:js正則表達(dá)式RegExp優(yōu)先級(jí)順序
下面從最高優(yōu)先級(jí)到最低優(yōu)先級(jí)列排序:
? (1) 轉(zhuǎn)義符:\
? (2) 圓括號(hào)和方括號(hào):(), []
? (3) 量詞: *, +, ?, {n}, {n,}, {n,m}
? (4) 位置和順序: ^, $
? (5) “或”操作: |
總結(jié)
到此這篇關(guān)于正則表達(dá)式校驗(yàn)身份證號(hào)碼的文章就介紹到這了,更多相關(guān)正則表達(dá)式校驗(yàn)身份證號(hào)碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 15/18位身份證號(hào)碼驗(yàn)證的正則表達(dá)式總結(jié)(詳細(xì)版)
- JavaScript正則表達(dá)式驗(yàn)證身份證號(hào)碼是否合法(兩種方法)
- JS使用正則表達(dá)式驗(yàn)證身份證號(hào)碼
- 最全正則表達(dá)式總結(jié):驗(yàn)證QQ號(hào)、手機(jī)號(hào)、Email、中文、郵編、身份證、IP地址等
- JS正則表達(dá)式完美實(shí)現(xiàn)身份證校驗(yàn)功能
- JS正則表達(dá)式詳解及身份證號(hào)碼驗(yàn)證(簡(jiǎn)易版)
- JS身份證信息驗(yàn)證正則表達(dá)式
- 如何用javascript正則表達(dá)式驗(yàn)證身份證號(hào)碼是否合法
- JS常見(jiàn)簡(jiǎn)單正則表達(dá)式驗(yàn)證功能小結(jié)【手機(jī),地址,企業(yè)稅號(hào),金額,身份證等】
相關(guān)文章
淺談javascript運(yùn)算符——條件,逗號(hào),賦值,()和void運(yùn)算符
下面小編就為大家?guī)?lái)一篇淺談javascript運(yùn)算符——條件,逗號(hào),賦值,()和void運(yùn)算符。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07JS實(shí)現(xiàn)提示框跟隨鼠標(biāo)移動(dòng)
在本篇內(nèi)容里小編給各位整理了一篇關(guān)于JS實(shí)現(xiàn)提示框跟隨鼠標(biāo)移動(dòng)的相關(guān)實(shí)例代碼,需要的朋友們學(xué)習(xí)下。2019-08-08教你一步步實(shí)現(xiàn)一個(gè)簡(jiǎn)易promise
Promise是異步編程的一種解決方案,比傳統(tǒng)的解決方案回調(diào)函數(shù)和事件更合理且更強(qiáng)大,這篇文章主要給大家介紹了關(guān)于如何一步步實(shí)現(xiàn)一個(gè)簡(jiǎn)易promise的相關(guān)資料,需要的朋友可以參考下2021-11-11一篇文章弄懂javascript中的執(zhí)行棧與執(zhí)行上下文
這篇文章主要給大家介紹了關(guān)于javascript中執(zhí)行棧與執(zhí)行上下文的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用javascript具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08ES6 let和const定義變量與常量的應(yīng)用實(shí)例分析
這篇文章主要介紹了ES6 let和const定義變量與常量的應(yīng)用,結(jié)合實(shí)例形式分析了ES6使用let定義變量以及使用const定義常量的相關(guān)操作技巧,需要的朋友可以參考下2019-06-06JS實(shí)現(xiàn)的簡(jiǎn)單折疊展開動(dòng)畫效果示例
這篇文章主要介紹了JS實(shí)現(xiàn)的簡(jiǎn)單折疊展開動(dòng)畫效果,可實(shí)現(xiàn)類似百度頁(yè)面分享按鈕一樣的折疊展開動(dòng)畫效果,涉及javascript頁(yè)面元素屬性動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-04-04webpack打包html里面img后src為“[object Module]”問(wèn)題
這篇文章主要介紹了webpack打包html里面img后src為“[object Module]”問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12