js使用正則表達(dá)式對(duì)身份證號(hào)的判斷
1.js正則判斷身份證號(hào)是否正確
以下是一個(gè)簡(jiǎn)單的 JavaScript 函數(shù),使用正則表達(dá)式來(lái)驗(yàn)證身份證號(hào)碼的格式是否正確:
function isValidIDCard(idCard) {
// 身份證正則表達(dá)式
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
return reg.test(idCard);
}上述代碼僅僅是驗(yàn)證了身份證號(hào)碼的格式是否正確,而并沒有驗(yàn)證身份證號(hào)碼本身是否合法。如果需要驗(yàn)證身份證號(hào)碼的合法性,可以使用第三方庫(kù)或者在線服務(wù)。
console.log(isValidIDCard('110101199003072733')); // true
console.log(isValidIDCard('11010119900307273X')); // true
console.log(isValidIDCard('1101011990030727')); // false
console.log(isValidIDCard('110101199003072734')); // false2.js使用正則判斷當(dāng)前身份證號(hào)是否是22歲
要判斷身份證號(hào)碼是否對(duì)應(yīng)一個(gè) 22 歲的人,需要先獲取身份證號(hào)碼中的出生日期,然后計(jì)算出此人的年齡,最后與 22 進(jìn)行比較。
function is22YearsOld(idCard) {
// 獲取身份證號(hào)碼中的出生日期
var birth = idCard.match(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})(\d|X)$/);
if (birth == null) {
// 身份證號(hào)碼格式不正確,直接返回 false
return false;
}
var year = birth[2];
var month = birth[3];
var day = birth[4];
// 計(jì)算此人的出生日期
var birthday = new Date(year + '-' + month + '-' + day);
// 計(jì)算此人的年齡
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使用正則表達(dá)式對(duì)身份證號(hào)判斷的文章就介紹到這了,更多相關(guān)js正則判斷身份證號(hào)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javascript的hashCode函數(shù)實(shí)現(xiàn)代碼小結(jié)
網(wǎng)上找了好一輪,找到個(gè)比較像樣而且足夠短的 hashCode 實(shí)現(xiàn),是從 Java 的 hashCode 中借鑒而得的。原理見 Java hashCode() ,也可以跟這里的 Java String 的源碼 參照對(duì)比一下2020-08-08
javascript淡入淡出效果的實(shí)現(xiàn)思路
這個(gè)思路是最近寫XScroll.js類的時(shí)候想明白的。平常我們說(shuō)的淡入淡出效果,一般分成兩部分,一半是淡入,另一半就是淡出了。不過(guò)經(jīng)過(guò)分析,我覺得其實(shí)只需要一半就行了2012-03-03

