js使用正則表達式對身份證號的判斷
更新時間:2023年08月21日 09:10:09 作者:張振濤,代碼界的搬運工
這篇文章主要給大家介紹了關(guān)于js使用正則表達式對身份證號的判斷的相關(guān)資料,在用戶注冊頁面有些需求要求的比較嚴格,需要對身份證驗證是否合法,通過此功能嚴格此系統(tǒng)軟件,從而過濾到很多,需要的朋友可以參考下
1.js正則判斷身份證號是否正確
以下是一個簡單的 JavaScript 函數(shù),使用正則表達式來驗證身份證號碼的格式是否正確:
function isValidIDCard(idCard) {
// 身份證正則表達式
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
return reg.test(idCard);
}上述代碼僅僅是驗證了身份證號碼的格式是否正確,而并沒有驗證身份證號碼本身是否合法。如果需要驗證身份證號碼的合法性,可以使用第三方庫或者在線服務。
console.log(isValidIDCard('110101199003072733')); // true
console.log(isValidIDCard('11010119900307273X')); // true
console.log(isValidIDCard('1101011990030727')); // false
console.log(isValidIDCard('110101199003072734')); // false2.js使用正則判斷當前身份證號是否是22歲
要判斷身份證號碼是否對應一個 22 歲的人,需要先獲取身份證號碼中的出生日期,然后計算出此人的年齡,最后與 22 進行比較。
function is22YearsOld(idCard) {
// 獲取身份證號碼中的出生日期
var birth = idCard.match(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})(\d|X)$/);
if (birth == null) {
// 身份證號碼格式不正確,直接返回 false
return false;
}
var year = birth[2];
var month = birth[3];
var day = birth[4];
// 計算此人的出生日期
var birthday = new Date(year + '-' + month + '-' + day);
// 計算此人的年齡
var age = new Date().getFullYear() - birthday.getFullYear();
if (new Date().getMonth() < birthday.getMonth() ||
(new Date().getMonth() == birthday.getMonth() && new Date().getDate() < birthday.getDate())) {
age--;
}
// 判斷此人的年齡是否等于 22
return age === 22;
// 判斷此人年齡是否小于 22
return age < 22;
}console.log(is22YearsOld('110101200102151234')); // true
console.log(is22YearsOld('110101199912312345')); // false總結(jié)
到此這篇關(guān)于js使用正則表達式對身份證號判斷的文章就介紹到這了,更多相關(guān)js正則判斷身份證號內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javascript的hashCode函數(shù)實現(xiàn)代碼小結(jié)
網(wǎng)上找了好一輪,找到個比較像樣而且足夠短的 hashCode 實現(xiàn),是從 Java 的 hashCode 中借鑒而得的。原理見 Java hashCode() ,也可以跟這里的 Java String 的源碼 參照對比一下2020-08-08

