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 相关文章推荐
javascript 实现简单的table排序及table操作练习
Dec 28 Javascript
js实现touch移动触屏滑动事件
Apr 17 Javascript
轻松实现jquery选项卡切换效果
Oct 10 Javascript
微信小程序 保留小数(toFixed)详细介绍
Nov 16 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
Mar 06 Javascript
JavaScript实现左右下拉框动态增删示例
Mar 09 Javascript
js实现各浏览器全屏代码实例
Jul 03 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
Sep 27 Javascript
VeeValidate 的使用场景以及配置详解
Jan 11 Javascript
在Layui中操作数据表格,给指定单元格添加事件示例
Oct 26 Javascript
vue 根据选择条件显示指定参数的例子
Nov 09 Javascript
vue实现整屏滚动切换
Jun 29 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用curl调用接口方法,get和post两种方式
2017/01/13 PHP
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
JavaScript对内存分配及管理机制详细解析
2013/11/11 Javascript
基于jquery实现左右按钮点击的图片切换效果
2021/01/27 Javascript
javascript下拉列表中显示树形菜单的实现方法
2015/11/17 Javascript
AngularJS实现全选反选功能
2015/12/08 Javascript
详解javascript的变量与标识符
2016/01/04 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
浅谈js中子页面父页面方法 变量相互调用
2016/08/04 Javascript
浅谈angularjs module返回对象的坑(推荐)
2016/10/21 Javascript
jQuery插件jsonview展示json数据
2018/05/26 jQuery
对VUE中的对象添加属性
2018/09/18 Javascript
微信小程序自定义可滑动日历界面
2018/12/28 Javascript
Python变量作用范围实例分析
2015/07/07 Python
Python实现登录接口的示例代码
2017/07/21 Python
python实现分页效果
2017/10/25 Python
ubuntu17.4下为python和python3装上pip的方法
2018/06/12 Python
浅谈python中真正关闭socket的方法
2018/12/18 Python
使用Django简单编写一个XSS平台的方法步骤
2019/03/25 Python
Django集成CAS单点登录的方法示例
2019/06/10 Python
对Python强大的可变参数传递机制详解
2019/06/13 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
2020/12/01 Python
HTML5实现动画效果的方式汇总
2016/02/29 HTML / CSS
德国网上花店:Valentins
2018/08/15 全球购物
女子锻炼服装和瑜伽服装:Splits59
2019/03/04 全球购物
北京一家公司的.net开发工程师笔试题
2012/04/17 面试题
教育课题研究自我鉴定范文
2013/12/28 职场文书
计算机专业优秀大学生自我总结
2014/01/21 职场文书
完美主义个人的自我评价
2014/02/17 职场文书
防灾减灾活动总结
2014/08/30 职场文书
作风整顿个人剖析材料
2014/10/06 职场文书
中小企业员工手册范本
2015/05/14 职场文书
科技馆观后感
2015/06/08 职场文书
导游词之泰山玉皇顶
2019/12/23 职场文书
图片批量处理 - 尺寸、格式、水印等
2022/03/07 杂记
俄罗斯十大城市人口排名,第三首都仅排第六,第二是北方首都
2022/03/20 杂记