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函数
May 27 Javascript
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
Apr 02 Javascript
Node.js与PHP、Python的字符处理性能对比
Jul 06 Javascript
js锁屏解屏通过对$.ajax进行封装实现
Jul 31 Javascript
21个JavaScript事件(Events)属性汇总
Dec 02 Javascript
js实现获取当前时间是本月第几周的方法
Aug 11 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
Sep 06 Javascript
关于vue-router路径计算问题
May 10 Javascript
JS异步处理的进化史深入讲解
Aug 25 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
Nov 01 Javascript
vue 实现websocket发送消息并实时接收消息
Dec 09 Javascript
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
Aug 11 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
星际争霸任务指南——虫族
2020/03/04 星际争霸
别人整理的服务器变量:$_SERVER
2006/10/20 PHP
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
2011/06/09 PHP
PHP中文件缓存转内存缓存的方法
2011/12/06 PHP
ThinkPHP模板输出display用法分析
2014/11/26 PHP
JS获取表格内指定单元格html内容的方法
2015/03/31 Javascript
jquery实现触发时更新下拉列表内容的方法
2015/12/02 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
2016/05/16 Javascript
js 弹出虚拟键盘修改密码的简单实例
2016/10/10 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
微信小程序 图片宽度自适应的实现
2017/04/06 Javascript
Vue 与 Vuex 的第一次接触遇到的坑
2018/08/16 Javascript
解决angularjs service中依赖注入$scope报错的问题
2018/10/02 Javascript
20个必会的JavaScript面试题(小结)
2019/07/02 Javascript
javascript面向对象三大特征之继承实例详解
2019/07/24 Javascript
Vue学习之组件用法实例详解
2020/01/06 Javascript
Python函数参数类型*、**的区别
2015/04/11 Python
对Django的restful用法详解(自带的增删改查)
2019/08/28 Python
numpy 声明空数组详解
2019/12/05 Python
Python openpyxl模块原理及用法解析
2020/01/19 Python
在pycharm中文件取消用 pytest模式打开的操作
2020/09/01 Python
纯CSS3实现8组超炫酷鼠标滑过图片动画
2016/03/16 HTML / CSS
CSS3中的transform属性进行2D和3D变换的基本用法
2016/05/12 HTML / CSS
全面解析HTML5中的标准属性与自定义属性
2016/02/18 HTML / CSS
Champs Sports加拿大:北美最大的以商场为基础的专业运动鞋和服装零售商之一
2018/05/01 全球购物
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
美国经典刺绣和字母儿童服装特卖:Smocked Auctions
2018/07/16 全球购物
领先的英国注册在线药房 :Simply Meds Online
2019/03/28 全球购物
行政前台岗位职责
2013/12/04 职场文书
自我鉴定书面格式
2014/01/13 职场文书
学校节能宣传周活动总结
2014/07/09 职场文书
离婚协议书标准格式
2014/10/04 职场文书
房产公证书格式
2015/01/26 职场文书
幼儿园毕业典礼家长致辞
2015/07/29 职场文书
初中政治教师教学反思
2016/02/23 职场文书
SpringBoot全局异常处理方案分享
2022/05/25 Java/Android