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定义回车事件(实现代码)
Jul 08 Javascript
PHP开发者必须掌握的6个关键字
Apr 14 Javascript
javascript面向对象特性代码实例
Jun 12 Javascript
js结合正则实现国内手机号段校验
Jun 19 Javascript
JavaScript Length 属性的总结
Nov 02 Javascript
基于Jquery制作图片文字排版预览效果附源码下载
Nov 18 Javascript
JavaScript版经典游戏之扫雷游戏完整示例【附demo源码下载】
Dec 12 Javascript
webpack多页面开发实践
Dec 18 Javascript
vue-cli3.0使用及部分配置详解
Aug 29 Javascript
JavaScript, select标签元素左右移动功能实现
May 14 Javascript
Vue + element 实现多选框组并保存已选id集合的示例代码
Jun 03 Javascript
JavaScript使用setTimeout实现倒计时效果
Feb 19 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中基本符号及使用方法
2010/03/23 PHP
有道搜索和IP138的IP的API接口(PHP应用)
2012/11/29 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
2013/06/20 PHP
php设置静态内容缓存时间的方法
2014/12/01 PHP
PHP简单实现断点续传下载的方法
2015/09/25 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
2015/12/30 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
jQuery 页面 Mask实现代码
2010/01/09 Javascript
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2011/09/13 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
JS解决ie6下png透明的方法实例
2013/08/02 Javascript
JAVA四种基本排序方法实例总结
2015/07/24 Javascript
asp.net中oracle 存储过程(图文)
2015/08/12 Javascript
详解AngularJS中module模块的导入导出
2015/12/10 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
2016/07/11 Javascript
Bootstrap Modal遮罩弹出层(完整版)
2016/11/21 Javascript
jQuery插件zTree实现的基本树与节点获取操作示例
2017/03/08 Javascript
js防刷新的倒计时代码 js倒计时代码
2017/09/06 Javascript
再谈Angular4 脏值检测(性能优化)
2018/04/23 Javascript
vue项目持久化存储数据的实现代码
2018/10/01 Javascript
每周一练 之 数据结构与算法(Stack)
2019/04/16 Javascript
一百行python代码将图片转成字符画
2021/02/19 Python
解决python3 pika之连接断开的问题
2018/12/18 Python
python爬取基于m3u8协议的ts文件并合并
2019/04/26 Python
Python3视频转字符动画的实例代码
2019/08/29 Python
基于python调用psutil模块过程解析
2019/12/20 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
阿根廷网上配眼镜:SmartBuyGlasses阿根廷
2016/08/19 全球购物
毕业生个人求职自荐信
2014/02/26 职场文书
党风廉政建设调研报告
2015/01/01 职场文书
中学生学习保证书
2015/02/26 职场文书
现实表现证明材料
2015/06/19 职场文书
一篇合格的广告文案,其主要目的是什么?
2019/07/12 职场文书
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA