var assert = require('assert');
describe('test', function() {
it('coc', function() {
var testCard01 = checkHKIDcard("AB987654(2)");
assert(testCard01, true); var testCard02 = checkHKIDcard("G123456(A)");
assert.equal(testCard02, true); var testCard03 = checkHKIDcard("L555555(0)");
assert.equal(testCard03, true); var testCard04 = checkHKIDcard("C123456(9)");
assert.equal(testCard04, true); var testCard05 = checkHKIDcard("AY987654(A)");
assert.equal(testCard05, false); });
}) function checkHKIDcard(str) {
var reg = /^[A-Z]{1,2}[0-9]{6}\([0-9A]\)$/
if(!str.match(reg)) return false; var temp = str.replace(/[\(\)]/g, ''); var len = temp.length;
var sum = (len === 9)
? 9 * (temp[0].charCodeAt() - 64) + 8 * (temp[1].charCodeAt() - 64)
: 8 * (temp[0].charCodeAt() - 64); var arr = temp.split('').reverse().join('').substr(1, 6);
var arrResult = [2, 3, 4, 5, 6, 7]; for(var i = 0; i< arr.length; i++) {
sum += Number(arr[i]) * arrResult[i];
} var mod = sum % 11;
var lastCode = temp[len -1];
if(mod === 0 && Number(lastCode) === 0 ) return true; var checkCode = 11 - mod;
if(checkCode === 10 && lastCode === 'A') return true; if(checkCode > 0 && checkCode < 10 && Number(lastCode) === checkCode) return true;
return false;
}

javascript验证香港身份证的更多相关文章

  1. PHP 验证香港身份证ID号

    /**check hk idcard$id = "K548653A";$xx= check_hkid($id);var_dump($xx);**/function check_hk ...

  2. Javascript 香港身份证号校验

    <!DOCTYPE html> <html> <head> <title>香港身份证校验码计算</title> </head> ...

  3. JavaScript验证正则表达式大全

    JavaScript验证正则表达式大全,搜集最全的JavaScript验证正则表达式,开始查看吧,这里的都是正则表达式的例子,具体和函数结合的使用方法,还请查看下篇文章<JavaScript使用 ...

  4. 纯javascript验证,100行超精简代码。

    这篇文章转自--寒飞,原帖地址http://blog.csdn.net/luoyehanfei/article/details/42262249 QQ交流群235032949 纯javascript验 ...

  5. Eclipse去除JavaScript验证错误

    这篇文章主要是对Eclipse去除js(JavaScript)验证错误进行了介绍.在Eclipse中,js文件常常会报错.可以通过如下几个步骤解决 第一步: 去除eclipse的JS验证: 将wind ...

  6. 【转】Eclipse去除js(JavaScript)验证错误

    这篇文章主要是对Eclipse去除js(JavaScript)验证错误进行了介绍.在Eclipse中,js文件常常会报错.可以通过如下几个步骤解决 第一步:去除eclipse的JS验证:将window ...

  7. javascript 验证 yyyy-MM-dd HH:mm:ss 的正则表达式

    原文:javascript 验证 yyyy-MM-dd HH:mm:ss 的正则表达式 ^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13 ...

  8. JavaScript验证和数据处理的干货(经典)

    在开发web项目的时候,难免遇到各种对网页数据的处理,比如对用户在表单中输入的电话号码.邮箱.金额.身份证号.密码长度和复杂程度等等的验证,以及对后台返回数据的格式化比如金额,返回的值为null,还有 ...

  9. 使用JavaScript验证用户输入的是否为正整数

    在项目开发中,需要使用JavaScript验证用户输入的是否为正整数. 方法一: var type="^[0-9]*[1-9][0-9]*$"; var r=new RegExp( ...

随机推荐

  1. MyBatis原理分析之四:一次SQL查询的源码分析

    上回我们讲到Mybatis加载相关的配置文件进行初始化,这回我们讲一下一次SQL查询怎么进行的. 准备工作 Mybatis完成一次SQL查询需要使用的代码如下: ) { ); ) { throw ne ...

  2. scala环境配置

    scala下载 解压 vim ~/.profile export PATH=~/dev/scala/scala-/bin:$PATH idea的scala插件这个由于太大,只能手工下载,注意下载的版本 ...

  3. 从数据库中导出excel报表

    通常需要将后台数据库中的数据集或者是其他列表等导出excel 报表,这里主要引用了Apose.cells dll 类库, (1)直接上主要代码: protected void txtExport_Cl ...

  4. 去掉mac终端里面hostname提示处的bogon

    打开终端,如果在命令提示$前面显示的主机名变成了bogon,则可以通过命令行修改: sudo scutil --set hostname 新主机名

  5. struts2执行流程

    当Web容器收到 请求(HttpServletRequest) 1.它将请求传递给一个标准的的过滤链包括 (ActionContextCleanUp)过滤器 2.然后经过Other filters(S ...

  6. Linux命令(22)find的使用

    在linux下面工作,有些命令能够大大提高效率. 比如说find命令,他哥俩可以算是必会的linux命令,几乎每天都要用到他们. find命令 find命令的一般形式 find命令的常用选项及实例 f ...

  7. 搭建jms的步骤和过程

    搭建jms 参考网摘: http://www.jianshu.com/p/98689164a041

  8. [转]Dynamic SQL & Stored Procedure Usage in T-SQL

    转自:http://www.sqlusa.com/bestpractices/training/scripts/dynamicsql/ Dynamic SQL & Stored Procedu ...

  9. OpenGL学习笔记2——顶点数组

    #pragma comment(lib,"glut32.lib") #pragma comment(lib,"glut.lib") #pragma commen ...

  10. 说说Timing这回事(转载)

    本文原始位置:FPGANotes Blog http://wiki.fpganotes.com/doku.php/ise:timing:my_summary Intro 问:一个FPGA设计项目需要用 ...