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网页中的(运行代码)功能实现思路
Feb 04 Javascript
js重写alert控件(适合学习js的新手朋友)
Aug 24 Javascript
JavaScript不使用prototype和new实现继承机制
Dec 29 Javascript
javascript数据结构与算法之检索算法
Apr 04 Javascript
JavaScript中操作字符串之localeCompare()方法的使用
Jun 06 Javascript
浅析C/C++,Java,PHP,JavaScript,Json数组、对象赋值时最后一个元素后面是否可以带逗号
Mar 22 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
Aug 19 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
Sep 20 Javascript
实例讲解vue源码架构
Jan 24 Javascript
vue搜索和vue模糊搜索代码实例
May 07 Javascript
通过JS深度判断两个对象字段相同
Jun 14 Javascript
vue实现Toast组件轻提示
Apr 10 Vue.js
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
一个oracle+PHP的查询的例子
2006/10/09 PHP
php ckeditor上传图片文件名乱码解决方法
2013/11/15 PHP
PHP实现的英文名字全拼随机排号脚本
2014/07/04 PHP
PHP+MYSQL会员系统的开发实例教程
2014/08/23 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
php使用curl实现简单模拟提交表单功能
2017/05/15 PHP
做网页的一些技巧(续)
2007/02/01 Javascript
Firefox和IE浏览器兼容JS脚本写法小结
2008/07/07 Javascript
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
ajax读取数据后使用jqchart显示图表的方法
2015/06/10 Javascript
Javascript编程之继承实例汇总
2015/11/28 Javascript
JS实现的倒计时效果实例(2则实例)
2015/12/23 Javascript
js调用屏幕宽度的简单方法
2016/11/14 Javascript
微信小程序学习之数据处理详解
2017/07/05 Javascript
three.js中文文档学习之通过模块导入
2017/11/20 Javascript
JS实现简单的点赞与踩功能示例
2018/12/05 Javascript
Webpack 4如何动态切割JS注入文件名详解
2019/07/09 Javascript
vue+elementUI动态增加表单项并添加验证的代码详解
2020/12/17 Vue.js
python统计文本字符串里单词出现频率的方法
2015/05/26 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
2017/05/16 Python
Python自定义一个类实现字典dict功能的方法
2019/01/19 Python
Django框架orM与自定义SQL语句混合事务控制操作
2019/06/27 Python
python遍历路径破解表单的示例
2020/11/21 Python
python爬虫beautifulsoup解析html方法
2020/12/07 Python
信息技术培训感言
2014/03/06 职场文书
超市活动计划书
2014/04/24 职场文书
道德之星事迹材料
2014/05/03 职场文书
村级环境卫生整治方案
2014/05/04 职场文书
酒店节能降耗方案
2014/05/08 职场文书
信访工作汇报材料
2014/10/27 职场文书
周恩来的四个昼夜观后感
2015/06/03 职场文书
使用css样式设计一个简单的html登陆界面的实现
2021/03/30 HTML / CSS
Nginx代理同域名前后端分离项目的完整步骤
2021/03/31 Servers
python 三边测量定位的实现代码
2021/04/22 Python
解决Swagger2返回map复杂结构不能解析的问题
2021/07/02 Java/Android
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis