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 来操作字符串(一些字符串函数)
Feb 15 Javascript
JObj预览一个JS的框架
Mar 13 Javascript
JS文本获得焦点清除文本文字的示例代码
Jan 13 Javascript
js 本地预览的简单实现方法
Feb 18 Javascript
JavaScript第一篇之实现按钮全选、功能
Aug 21 Javascript
微信小程序  checkbox组件详解及简单实例
Jan 10 Javascript
jQuery异步提交表单实例
May 30 jQuery
React实现全局组件的Toast轻提示效果
Sep 21 Javascript
详解Angular5/Angular6项目如何添加热更新(HMR)功能
Oct 10 Javascript
浅谈vue异步数据影响页面渲染
Oct 29 Javascript
vue中使用vue-pdf的方法详解
Sep 05 Javascript
详解Javascript实践中的命令模式
May 05 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 正则表达式的学习探讨
2013/06/06 PHP
PHP中UNIX时间戳和日期间的转换与计算实例
2014/11/19 PHP
PHP获取photoshop写入图片文字信息的方法
2015/03/31 PHP
Yii Framework框架开发微信公众平台示例
2020/04/26 PHP
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
2010/06/28 Javascript
尝试在让script的type属性等于text/html
2013/01/15 Javascript
js判断上传文件类型判断FileUpload文件类型代码
2014/05/20 Javascript
JavaScript设计模式之装饰者模式介绍
2014/12/28 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
2015/11/24 Javascript
jQuery中的siblings用法实例分析
2015/12/24 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
2016/04/17 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
2016/08/11 Javascript
html5+canvas实现支持触屏的签名插件教程
2017/05/08 Javascript
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
javascript数组去重方法总结(推荐)
2019/03/20 Javascript
js+canvas实现纸牌游戏
2020/03/16 Javascript
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
2021/03/01 Vue.js
Python SQLite3数据库日期与时间常见函数用法分析
2017/08/14 Python
django加载本地html的方法
2018/05/27 Python
详解django自定义中间件处理
2018/11/21 Python
python实现简单日期工具类
2019/04/24 Python
python如何读取bin文件并下发串口
2019/07/05 Python
python爬虫的一个常见简单js反爬详解
2019/07/09 Python
使用python自动追踪你的快递(物流推送邮箱)
2020/03/17 Python
马来西亚在线时尚女装商店:KEI MAG
2017/09/28 全球购物
Street One瑞士:德国现代时装公司
2019/10/09 全球购物
电子商务专业个人的自我评价
2013/12/19 职场文书
大学生校园创业计划书
2014/02/08 职场文书
高中学生评语大全
2014/04/25 职场文书
2014年保卫工作总结
2014/12/05 职场文书
教师工作决心书
2015/02/04 职场文书
2015年社区工会工作总结
2015/05/26 职场文书
喋血孤城观后感
2015/06/08 职场文书
Python+Tkinter制作专属图形化界面
2022/04/01 Python
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2022/06/16 Golang