javascript驗(yàn)證香港身份證的格式或真實(shí)性
話不多說(shuō),請(qǐng)看代碼
function IsHKID(str) { var strValidChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" // basic check length if (str.length < 8) return false; // handling bracket if (str.charAt(str.length-3) == '(' && str.charAt(str.length-1) == ')') str = str.substring(0, str.length - 3) + str.charAt(str.length -2); // convert to upper case str = str.toUpperCase(); // regular expression to check pattern and split var hkidPat = /^([A-Z]{1,2})([0-9]{6})([A0-9])$/; var matchArray = str.match(hkidPat); // not match, return false if (matchArray == null) return false; // the character part, numeric part and check digit part var charPart = matchArray[1]; var numPart = matchArray[2]; var checkDigit = matchArray[3]; // calculate the checksum for character part var checkSum = 0; if (charPart.length == 2) { checkSum += 9 * (10 + strValidChars.indexOf(charPart.charAt(0))); checkSum += 8 * (10 + strValidChars.indexOf(charPart.charAt(1))); } else { checkSum += 9 * 36; checkSum += 8 * (10 + strValidChars.indexOf(charPart)); } // calculate the checksum for numeric part for (var i = 0, j = 7; i < numPart.length; i++, j--) checkSum += j * numPart.charAt(i); // verify the check digit var remaining = checkSum % 11; var verify = remaining == 0 ? 0 : 11 - remaining; return verify == checkDigit || (verify == 10 && checkDigit == 'A'); }
在網(wǎng)上找了很久都沒(méi)合意的驗(yàn)證方式,最后通過(guò)Google找到一個(gè)國(guó)外寫的js驗(yàn)證,發(fā)現(xiàn)可以使用。
上面那段驗(yàn)證的很精密,包含身份證真實(shí)性的校驗(yàn),如果只是想驗(yàn)證輸入的香港身份證格式,請(qǐng)使用下面的這段js。
function IsHKID(str) { var strValidChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" // basic check length if (str.length < 8) return false; // handling bracket if (str.charAt(str.length-3) == '(' && str.charAt(str.length-1) == ')') str = str.substring(0, str.length - 3) + str.charAt(str.length -2); // convert to upper case str = str.toUpperCase(); // regular expression to check pattern and split var hkidPat = /^([A-Z]{1,2})([0-9]{6})([A0-9])$/; var matchArray = str.match(hkidPat); // not match, return false if (matchArray == null) return false; return true; }
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
- Javascript使用正則驗(yàn)證身份證號(hào)(簡(jiǎn)單)
- js驗(yàn)證真實(shí)姓名與身份證號(hào),手機(jī)號(hào)的簡(jiǎn)單實(shí)例
- js驗(yàn)證真實(shí)姓名與身份證號(hào)是否匹配
- JavaScript正則表達(dá)式驗(yàn)證身份證號(hào)碼是否合法(兩種方法)
- 如何用javascript正則表達(dá)式驗(yàn)證身份證號(hào)碼是否合法
- javascript驗(yàn)證身份證號(hào)
- js實(shí)現(xiàn)二代身份證號(hào)碼驗(yàn)證詳解
- js 驗(yàn)證身份證信息有效性
- js實(shí)現(xiàn)身份證號(hào)碼驗(yàn)證的簡(jiǎn)單實(shí)例
- js 第二代身份證號(hào)碼的驗(yàn)證機(jī)制代碼
相關(guān)文章
js計(jì)算最大公約數(shù)和最小公倍數(shù)代碼實(shí)例
這篇文章主要介紹了js計(jì)算最大公約數(shù)和最小公倍數(shù)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09解決layer彈出層的內(nèi)容頁(yè)點(diǎn)擊按鈕跳轉(zhuǎn)到新的頁(yè)面問(wèn)題
今天小編就為大家分享一篇解決layer彈出層的內(nèi)容頁(yè)點(diǎn)擊按鈕跳轉(zhuǎn)到新的頁(yè)面問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09理解javascript中的Function.prototype.bind的方法
這篇文章主要介紹了理解javascript中的Function.prototype.bind的方法,具有一定參考價(jià)值,有興趣的可以了解一下。2017-02-02基于JS實(shí)現(xiàn)仿百度百家主頁(yè)的輪播圖效果
本文給大家分享基于html和js實(shí)現(xiàn)的仿百度百家主頁(yè)的輪播圖效果,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下2017-03-03JS實(shí)現(xiàn)仿google、百度搜索框輸入信息智能提示的實(shí)現(xiàn)方法
這篇文章主要介紹了JS實(shí)現(xiàn)仿google、百度搜索框輸入信息智能提示的實(shí)現(xiàn)方法,實(shí)例分析了javascript實(shí)現(xiàn)智能提示功能的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04彈出遮罩層后禁止?jié)L動(dòng)效果【實(shí)現(xiàn)代碼】
下面小編就為大家?guī)?lái)一篇彈出遮罩層后禁止?jié)L動(dòng)效果【實(shí)現(xiàn)代碼】。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考2016-04-04