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