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 相关文章推荐
jquery显示和隐藏div特效实例
Feb 27 Javascript
jquery获取checkbox的值并post提交
Jan 14 Javascript
AngularJS使用ngOption实现下拉列表的实例代码
Jan 23 Javascript
XMLHttpRequest Level 2 使用指南
Aug 26 Javascript
把json格式的字符串转换成javascript对象或数组的方法总结
Nov 03 Javascript
过期软件破解办法实例详解
Jan 04 Javascript
React中使用collections时key的重要性详解
Aug 07 Javascript
js模块加载方式浅析
Aug 12 Javascript
AngularJS实现controller控制器间共享数据的方法示例
Oct 30 Javascript
原生JS实现的放大镜特效示例【测试可用】
Dec 08 Javascript
详解vue3.0 diff算法的使用(超详细)
Jul 01 Javascript
jquery实现异步文件上传ajaxfileupload.js
Oct 23 jQuery
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下使用以下代码连接并测试
2008/04/09 PHP
php file_exists 检查文件或目录是否存在的函数
2010/05/10 PHP
php实现的顺序线性表示例
2019/05/04 PHP
javascript编程起步(第七课)
2007/01/10 Javascript
jquery.validate分组验证代码
2011/03/17 Javascript
JavaScript中数据结构与算法(一):栈
2015/06/19 Javascript
基于Css3和JQuery实现打字机效果
2015/08/11 Javascript
js实现简单折叠、展开菜单的方法
2015/08/28 Javascript
weUI应用之JS常用信息提示弹层的封装
2016/11/21 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
2016/12/14 Javascript
jQuery图片拖动组件Dropzone用法示例
2017/01/17 Javascript
Angular 2.x学习教程之结构指令详解
2017/05/25 Javascript
基于JavaScript实现图片连播和联级菜单实例代码
2017/07/28 Javascript
vue点击input弹出带搜索键盘并监听该元素的方法
2018/08/25 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python去除、替换字符串空格的处理方法
2018/04/01 Python
完美解决python中ndarray 默认用科学计数法显示的问题
2018/07/14 Python
Python实现二维曲线拟合的方法
2018/12/29 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
使用python实现ftp的文件读写方法
2019/07/02 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
python安装gdal的两种方法
2019/10/29 Python
python几种常用功能实现代码实例
2019/12/25 Python
python给指定csv表格中的联系人群发邮件(带附件的邮件)
2019/12/31 Python
python中Ansible模块的Playbook的具体使用
2020/05/28 Python
python属于解释语言吗
2020/06/11 Python
使用CSS3的::selection改变选中文本颜色的方法
2015/09/29 HTML / CSS
shell程序中如何注释
2012/01/28 面试题
2013年军训通讯稿
2014/02/05 职场文书
生产部岗位职责范文
2014/02/07 职场文书
横幅标语大全
2014/06/17 职场文书
租房协议书
2014/09/12 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
学校2016年圣诞节活动总结
2016/03/31 职场文书
Python采集壁纸并实现炫轮播
2022/04/30 Python