正則表達(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位),其中:
^表示匹配字符串的開(kāi)頭[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á)式可以匹配類(lèi)似于 “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)用戶(hù)提交表單時(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實(shí)現(xiàn)簡(jiǎn)單的彈窗效果
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡(jiǎn)單的彈窗效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05
JS實(shí)現(xiàn)數(shù)組去重方法總結(jié)(六種方法)
這篇文章給大家總結(jié)下JS實(shí)現(xiàn)數(shù)組去重方法(六種方法),面試中也經(jīng)常會(huì)遇到這個(gè)問(wèn)題。文中給大家引申的還有合并數(shù)組并去重的方法,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2017-07-07
js 將線(xiàn)性數(shù)據(jù)轉(zhuǎn)為樹(shù)形的示例代碼
這篇文章主要介紹了js 將線(xiàn)性數(shù)據(jù)轉(zhuǎn)為樹(shù)形的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
解決webpack dev-server不能匹配post請(qǐng)求的問(wèn)題
這篇文章主要介紹了解決webpack不能匹配post請(qǐng)求的問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
微信小程序中進(jìn)行地圖導(dǎo)航功能的實(shí)現(xiàn)方法
這篇文章主要介紹了微信小程序中進(jìn)行地圖導(dǎo)航功能的實(shí)現(xiàn)方法,需要的朋友可以參考下2018-06-06
js實(shí)現(xiàn)左右兩側(cè)浮動(dòng)廣告
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)左右兩側(cè)浮動(dòng)廣告,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
詳解webpack-dev-server 設(shè)置反向代理解決跨域問(wèn)題
后端只負(fù)責(zé)接口,前端負(fù)責(zé)數(shù)據(jù)展示、邏輯處理。那么如何跨域?這篇文章主要介紹了webpack-dev-server 設(shè)置反向代理解決跨域問(wèn)題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
原生JS實(shí)現(xiàn)匯率轉(zhuǎn)換功能代碼實(shí)例
這篇文章主要介紹了原生JS實(shí)現(xiàn)匯率轉(zhuǎn)換功能代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05

