正則表達(dá)式校驗身份證號碼完整代碼示例
^([1-9]\d{5})(\d{4})(\d{2})(\d{2})(\d{3})(\d|X)$
這個正則表達(dá)式用于匹配中國身份證號碼(18位),其中:
^表示匹配字符串的開頭[1-9]表示匹配數(shù)字 1-9 中的任意一個\d{5}表示匹配任意 5 個數(shù)字,即區(qū)域碼(\d{4})(\d{2})(\d{2})表示匹配出生年月日,其中\d{4}表示匹配任意 4 個數(shù)字,\d{2}表示匹配任意 2 個數(shù)字(\d{3})(\d|X)表示匹配最后四位,其中\d{3}表示匹配任意 3 個數(shù)字,\d|X表示匹配最后一位數(shù)字或字母 X$表示匹配字符串的結(jié)尾
所以,這個正則表達(dá)式可以匹配類似于 “110101198001011234” 的身份證號碼。
需要注意的是,這個正則表達(dá)式并不能完全保證身份證
這個表達(dá)式怎么用到JS上面對字符串判斷呢
在 JavaScript 中,可以使用 test 方法來測試一個字符串是否匹配一個正則表達(dá)式。 test 方法會返回一個布爾值,如果匹配成功則返回 true,否則返回 false。
你可以將上面的正則表達(dá)式編譯成一個 RegExp 對象,然后調(diào)用它的 test 方法來判斷字符串是否符合要求。例如:
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("不符合要求");
}
在上面的示例代碼中,首先定義了一個待校驗的身份證號碼 password,然后將正則表達(dá)式編譯成一個 RegExp 對象。
接下來調(diào)用 RegExp 對象的 test 方法,判斷密碼是否符合正則表達(dá)式的要求。最后輸出校驗結(jié)果。
如果你需要在表單中校驗身份證號碼時,可以在表單提交時觸發(fā)一個函數(shù)進行校驗。例如:
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 {
// 顯示錯誤提示
const error = document.querySelector("#error");
error.textContent = "不符合要求";
}
}
在上面的示例代碼中,定義了一個表單元素和一個身份證號碼輸入框。當(dāng)用戶提交表單時,調(diào)用 onSubmit 函數(shù)進行身份證號碼校驗。如果身份證號碼符合要求,則提交表單;否則,顯示一個錯誤提示。
附:js正則表達(dá)式RegExp優(yōu)先級順序
下面從最高優(yōu)先級到最低優(yōu)先級列排序:
? (1) 轉(zhuǎn)義符:\
? (2) 圓括號和方括號:(), []
? (3) 量詞: *, +, ?, {n}, {n,}, {n,m}
? (4) 位置和順序: ^, $
? (5) “或”操作: |
總結(jié)
到此這篇關(guān)于正則表達(dá)式校驗身份證號碼的文章就介紹到這了,更多相關(guān)正則表達(dá)式校驗身份證號碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 15/18位身份證號碼驗證的正則表達(dá)式總結(jié)(詳細(xì)版)
- JavaScript正則表達(dá)式驗證身份證號碼是否合法(兩種方法)
- JS使用正則表達(dá)式驗證身份證號碼
- 最全正則表達(dá)式總結(jié):驗證QQ號、手機號、Email、中文、郵編、身份證、IP地址等
- JS正則表達(dá)式完美實現(xiàn)身份證校驗功能
- JS正則表達(dá)式詳解及身份證號碼驗證(簡易版)
- JS身份證信息驗證正則表達(dá)式
- 如何用javascript正則表達(dá)式驗證身份證號碼是否合法
- JS常見簡單正則表達(dá)式驗證功能小結(jié)【手機,地址,企業(yè)稅號,金額,身份證等】
相關(guān)文章
JS實現(xiàn)數(shù)組去重方法總結(jié)(六種方法)
這篇文章給大家總結(jié)下JS實現(xiàn)數(shù)組去重方法(六種方法),面試中也經(jīng)常會遇到這個問題。文中給大家引申的還有合并數(shù)組并去重的方法,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2017-07-07
js 將線性數(shù)據(jù)轉(zhuǎn)為樹形的示例代碼
這篇文章主要介紹了js 將線性數(shù)據(jù)轉(zhuǎn)為樹形的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
解決webpack dev-server不能匹配post請求的問題
這篇文章主要介紹了解決webpack不能匹配post請求的問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08
微信小程序中進行地圖導(dǎo)航功能的實現(xiàn)方法
這篇文章主要介紹了微信小程序中進行地圖導(dǎo)航功能的實現(xiàn)方法,需要的朋友可以參考下2018-06-06
詳解webpack-dev-server 設(shè)置反向代理解決跨域問題
后端只負(fù)責(zé)接口,前端負(fù)責(zé)數(shù)據(jù)展示、邏輯處理。那么如何跨域?這篇文章主要介紹了webpack-dev-server 設(shè)置反向代理解決跨域問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-04-04

