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. TIOBE Index for January 2016(转载)

    Java has won the TIOBE Index programming language award of the year. This is because Java has the la ...

  2. 加快http请求图片的速度

    在web网页里面经常需要请求图片,为了减少图片的http请求,总共有三种办法 使用map和area,具体看下面的链接 http://www.w3school.com.cn/tags/att_area_ ...

  3. U3V第三方软件驱动路径

    NI驱动位置:C:\Program Files (x86)\National Instruments\NI-IMAQdx\Staging\NI USB3 VisionA&B驱动位置:D:\Pr ...

  4. core文件

    1.ulimit  -c查看是否可以产生core文件 打印0表示当前不产生core文件 2.ulimit -c unlimited 设置产生core文件 这种方法只是临时设置产生core文件 3.ec ...

  5. mysql connector 和 sqlserver ado.net 的区别

    1,虽然同样是实现了IDataReader接口,但是 对于 MySql.Data.MySqlClient.MySqlDataReader  和 System.Data.SqlClient.SqlDat ...

  6. 洛谷 P3366 【模板】最小生成树 prim算法思路 我自己的实现

    网上有很多prim算法  用邻接矩阵 加什么lowcost数组 我觉得不靠谱 毕竟邻接矩阵本身就不是存图的好方法 所以自己写了一个邻接表(边信息表)版本的  注意我还是用了优先队列  每次新加入一个点 ...

  7. zzz

    开放平台(TOP)的API是基于HTTP协议来调用的,开发者(ISV)可以直接使用TOP提供的官方SDK(支持多种语言,包含了请求的封装,签名加密,响应解释,性能优化等)来调用,也可以根据TOP的协议 ...

  8. Docker 的 Image 太大,怎么变小?

    铛~铛~铛~Docker即将颠覆整个软件产业,从云计算平台到软件开发.测试,整个SDLC都会极度依赖Docker. 圈子里面一定有很多讨论Docker的话题,简而言之,Docker其实只解决一个问题: ...

  9. [转]jquery getJSON 数据联动(采用序列化和反序列化获取数据) .

    <html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    ...

  10. dubbo+zookeeper集群配置

    集群服务注册到多台zookeeper配置: <dubbo:registry protocol="zookeeper" address="10.20.153.10:2 ...