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 相关文章推荐
终于解决了IE8不支持数组的indexOf方法
Apr 03 Javascript
JS中typeof与instanceof之间的区别总结
Nov 14 Javascript
页面实时更新时间的JS实例代码
Dec 18 Javascript
Javascript中this关键字的一些小知识
Mar 15 Javascript
AngularJS控制器controller正确的通信的方法
Jan 25 Javascript
jQuery模拟360浏览器切屏效果幻灯片(附demo源码下载)
Jan 29 Javascript
node.js使用cluster实现多进程
Mar 17 Javascript
JS判断元素是否在数组内的实现代码
Mar 30 Javascript
vue音乐播放器插件vue-aplayer的配置及其使用实例详解
Jul 10 Javascript
vue 2.0封装model组件的方法
Aug 03 Javascript
通过javascript实现扫雷游戏代码实例
Feb 09 Javascript
基于canvasJS在PHP中制作动态图表
May 30 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判断字符以及字符串的包含方法属性
2008/08/30 PHP
php后退一页表单内容保存实现方法
2012/06/17 PHP
B/S开发中常用javaScript技术与代码
2007/03/09 Javascript
基于jQuery的为attr添加id title等效果的实现代码
2011/04/20 Javascript
jquery操作select option 的代码小结
2011/06/21 Javascript
javascript针对DOM的应用实例(一)
2012/04/15 Javascript
一个可以增加和删除行的table并可编辑表格中内容
2014/06/16 Javascript
JavaScript整除运算函数ceil和floor的区别分析
2015/04/14 Javascript
整理Javascript基础入门学习笔记
2015/11/29 Javascript
第一章之初识Bootstrap
2016/04/25 Javascript
一系列Bootstrap导航条使用方法分享
2016/04/29 Javascript
JQuery.validate在ie8下不支持的快速解决方法
2016/05/18 Javascript
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
基于nodejs 的多页面爬虫实例代码
2017/05/31 NodeJs
10个经典的网页鼠标特效代码
2018/01/09 Javascript
jQuery简单判断值是否存在于数组中的方法示例
2018/04/17 jQuery
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
python中二维阵列的变换实例
2014/10/09 Python
详解Python中的条件判断语句
2015/05/14 Python
python3实现读取chrome浏览器cookie
2016/06/19 Python
APIStar:一个专为Python3设计的API框架
2018/09/26 Python
python中logging模块的一些简单用法的使用
2019/02/22 Python
Python+OpenCV实现实时眼动追踪的示例代码
2019/11/11 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
2019/12/30 Python
django模型动态修改参数,增加 filter 字段的方式
2020/03/16 Python
Python自动发送和收取邮件的方法
2020/08/12 Python
Python3 用什么IDE开发工具比较好
2020/11/28 Python
python温度转换华氏温度实现代码
2020/12/06 Python
html5新增的属性和废除的属性简要概述
2013/02/20 HTML / CSS
俄罗斯化妆品和香水网上商店:Iledebeaute
2019/01/03 全球购物
中国文明网签名寄语
2014/01/18 职场文书
个人委托书怎么写
2014/04/04 职场文书
施工工地安全标语
2014/06/07 职场文书
大学生见习期满自我鉴定
2014/09/13 职场文书
六查六看自检自查剖析材料
2014/10/14 职场文书
Go语言 详解net的tcp服务
2022/04/14 Golang