javascript验证香港身份证的格式或真实性


Posted in Javascript onFebruary 07, 2017

话不多说,请看代码

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');
}

在网上找了很久都没合意的验证方式,最后通过Google找到一个国外写的js验证,发现可以使用。

上面那段验证的很精密,包含身份证真实性的校验,如果只是想验证输入的香港身份证格式,请使用下面的这段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;
 }

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
js 目录列举函数
Nov 06 Javascript
Javascript中找到子元素在父元素内相对位置的代码
Jul 21 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
Jan 07 Javascript
Js表格万条数据瞬间加载实现代码
Feb 20 Javascript
jquery中map函数与each函数的区别实例介绍
Jun 23 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
Oct 24 Javascript
在 Express 中使用模板引擎
Dec 10 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
Dec 25 Javascript
jQuery查找dom的几种方法效率详解
May 17 jQuery
js原生代码实现轮播图的实例讲解
Jul 28 Javascript
vue router学习之动态路由和嵌套路由详解
Sep 21 Javascript
vue-cli常用设置总结
Feb 24 Javascript
JS实现JSON.stringify的实例代码讲解
Feb 07 #Javascript
jQuery简单获取DIV和A标签元素位置的方法
Feb 07 #Javascript
JS日程管理插件FullCalendar简单实例
Feb 07 #Javascript
纯js三维数组实现三级联动效果
Feb 07 #Javascript
在点击div中的p时,如何阻止事件冒泡
Feb 07 #Javascript
bootstrap vue.js实现tab效果
Feb 07 #Javascript
Node连接mysql数据库方法介绍
Feb 07 #Javascript
You might like
PHP 字符串正则替换函数preg_replace使用说明
2011/07/15 PHP
php利用事务处理转账问题
2015/04/22 PHP
Laravel如何同时连接多个数据库详解
2019/08/13 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
2020/03/18 PHP
javascript中的一些注意事项 更新中
2010/12/06 Javascript
js设置组合快捷键/tabindex功能的方法
2013/11/21 Javascript
javascript顺序加载图片的方法
2015/07/18 Javascript
JQuery插件Marquee.js实现无缝滚动效果
2016/04/26 Javascript
js弹出框、对话框、提示框、弹窗实现方法总结(推荐)
2016/05/31 Javascript
BootStrap CSS全局样式和表格样式源码解析
2017/01/20 Javascript
Vue导出页面为PDF格式的实现思路
2018/07/31 Javascript
Object.keys() 和 Object.getOwnPropertyNames() 的区别详解
2020/05/21 Javascript
简单的Python的curses库使用教程
2015/04/11 Python
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
Python中几种导入模块的方式总结
2017/04/27 Python
windows下Python实现将pdf文件转化为png格式图片的方法
2017/07/21 Python
Django中cookie的基本使用方法示例
2018/02/03 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
2018/12/12 Python
python3实现小球转动抽奖小游戏
2020/04/15 Python
python实现大战外星人小游戏实例代码
2019/12/26 Python
django教程如何自学
2020/07/31 Python
Django配置跨域并开发测试接口
2020/11/04 Python
matplotlib部件之套索Lasso的使用
2021/02/24 Python
html5中的input新属性range使用记录
2014/09/05 HTML / CSS
LocalStorage记住用户和密码功能
2017/07/24 HTML / CSS
暇步士官网:Hush Puppies
2016/09/22 全球购物
Vero Moda西班牙官方购物网站:丹麦BESTSELLER旗下知名女装品牌
2018/04/27 全球购物
中东地区为妈妈们提供一切的头号购物目的地:Sprii
2018/05/06 全球购物
C语言基础笔试题
2013/04/27 面试题
银行实习生自我鉴定范文
2013/09/19 职场文书
大专会计自我鉴定
2014/02/06 职场文书
合作协议书
2014/04/23 职场文书
镇政府副镇长群众路线专题民主生活会对照检查材料
2014/09/19 职场文书
领导干部“四风”问题批评与自我批评材料
2014/09/24 职场文书
师德师风个人自我剖析材料
2014/09/27 职场文书
观看禁毒宣传片后的感想
2015/08/11 职场文书