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的获取浏览器窗口大小的代码
Mar 28 Javascript
调用DOM对象的focus使文本框获得焦点
Feb 19 Javascript
javascript中var的重要性分析
Feb 11 Javascript
快速获取/设置iframe内对象元素的几种js实现方法
May 20 Javascript
node.js文件上传处理示例
Oct 27 Javascript
jQuery加载及解析XML文件的方法实例分析
Jan 22 Javascript
解决Vue中mounted钩子函数获取节点高度出错问题
May 18 Javascript
Vue实现日历小插件
Jun 26 Javascript
Vue动态面包屑功能的实现方法
Jul 01 Javascript
p5.js临摹动态图形的方法
Oct 23 Javascript
Vue 图片压缩并上传至服务器功能
Jan 15 Javascript
vue学习笔记之slot插槽用法实例分析
Feb 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
打造计数器DIY三步曲(上)
2006/10/09 PHP
再Docker中架设完整的WordPress站点全攻略
2015/07/29 PHP
form自动提交实例讲解
2017/07/10 PHP
PHP 二维array转换json的实例讲解
2018/08/21 PHP
可缩放Reloaded-一个针对可缩放元素的复用组件
2007/03/10 Javascript
W3C Group的JavaScript1.8 新特性介绍
2009/05/19 Javascript
js获取当前select 元素值的代码
2010/04/19 Javascript
jQueryUI如何自定义组件实现代码
2010/11/14 Javascript
妙用Jquery的val()方法
2012/06/27 Javascript
javascript页面倒计时实例
2015/07/25 Javascript
Bootstrap每天必学之警告框插件
2016/04/26 Javascript
Bootstrap Scrollspy源码学习
2017/03/02 Javascript
vue监听滚动事件实现滚动监听
2017/04/11 Javascript
javaScript封装的各种写法
2017/08/14 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
2018/12/18 Javascript
JavaScript鼠标拖拽事件详解
2020/04/03 Javascript
python调用fortran模块
2016/04/08 Python
python 调用HBase的简单实例
2016/12/18 Python
Python中文分词工具之结巴分词用法实例总结【经典案例】
2017/04/15 Python
python实现TF-IDF算法解析
2018/01/02 Python
基于Python中求和函数sum的用法详解
2018/06/28 Python
Python3中在Anaconda环境下安装basemap包
2018/10/21 Python
在pycharm中配置Anaconda以及pip源配置详解
2019/09/09 Python
sklearn+python:线性回归案例
2020/02/24 Python
高尔夫球鞋、服装、手套和装备:FootJoy
2018/12/15 全球购物
举例说明类变量和实例变量的区别
2016/06/30 面试题
中专毕业生个人职业生涯规划
2014/02/19 职场文书
《小动物过冬》教学反思
2014/04/17 职场文书
党员民主生活会对照检查材料思想汇报
2014/09/28 职场文书
个人股份合作协议书
2014/10/24 职场文书
家庭财产分割协议范文
2014/11/24 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
感恩教育观后感
2015/06/17 职场文书
《槐乡的孩子》教学反思
2016/02/20 职场文书
《月球之谜》教学反思
2016/02/20 职场文书
JavaScript前端面试组合函数
2022/06/21 Javascript