javascript验证香港身份证
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验证香港身份证的更多相关文章
- PHP 验证香港身份证ID号
/**check hk idcard$id = "K548653A";$xx= check_hkid($id);var_dump($xx);**/function check_hk ...
- Javascript 香港身份证号校验
<!DOCTYPE html> <html> <head> <title>香港身份证校验码计算</title> </head> ...
- JavaScript验证正则表达式大全
JavaScript验证正则表达式大全,搜集最全的JavaScript验证正则表达式,开始查看吧,这里的都是正则表达式的例子,具体和函数结合的使用方法,还请查看下篇文章<JavaScript使用 ...
- 纯javascript验证,100行超精简代码。
这篇文章转自--寒飞,原帖地址http://blog.csdn.net/luoyehanfei/article/details/42262249 QQ交流群235032949 纯javascript验 ...
- Eclipse去除JavaScript验证错误
这篇文章主要是对Eclipse去除js(JavaScript)验证错误进行了介绍.在Eclipse中,js文件常常会报错.可以通过如下几个步骤解决 第一步: 去除eclipse的JS验证: 将wind ...
- 【转】Eclipse去除js(JavaScript)验证错误
这篇文章主要是对Eclipse去除js(JavaScript)验证错误进行了介绍.在Eclipse中,js文件常常会报错.可以通过如下几个步骤解决 第一步:去除eclipse的JS验证:将window ...
- javascript 验证 yyyy-MM-dd HH:mm:ss 的正则表达式
原文:javascript 验证 yyyy-MM-dd HH:mm:ss 的正则表达式 ^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13 ...
- JavaScript验证和数据处理的干货(经典)
在开发web项目的时候,难免遇到各种对网页数据的处理,比如对用户在表单中输入的电话号码.邮箱.金额.身份证号.密码长度和复杂程度等等的验证,以及对后台返回数据的格式化比如金额,返回的值为null,还有 ...
- 使用JavaScript验证用户输入的是否为正整数
在项目开发中,需要使用JavaScript验证用户输入的是否为正整数. 方法一: var type="^[0-9]*[1-9][0-9]*$"; var r=new RegExp( ...
随机推荐
- TIOBE Index for January 2016(转载)
Java has won the TIOBE Index programming language award of the year. This is because Java has the la ...
- 加快http请求图片的速度
在web网页里面经常需要请求图片,为了减少图片的http请求,总共有三种办法 使用map和area,具体看下面的链接 http://www.w3school.com.cn/tags/att_area_ ...
- U3V第三方软件驱动路径
NI驱动位置:C:\Program Files (x86)\National Instruments\NI-IMAQdx\Staging\NI USB3 VisionA&B驱动位置:D:\Pr ...
- core文件
1.ulimit -c查看是否可以产生core文件 打印0表示当前不产生core文件 2.ulimit -c unlimited 设置产生core文件 这种方法只是临时设置产生core文件 3.ec ...
- mysql connector 和 sqlserver ado.net 的区别
1,虽然同样是实现了IDataReader接口,但是 对于 MySql.Data.MySqlClient.MySqlDataReader 和 System.Data.SqlClient.SqlDat ...
- 洛谷 P3366 【模板】最小生成树 prim算法思路 我自己的实现
网上有很多prim算法 用邻接矩阵 加什么lowcost数组 我觉得不靠谱 毕竟邻接矩阵本身就不是存图的好方法 所以自己写了一个邻接表(边信息表)版本的 注意我还是用了优先队列 每次新加入一个点 ...
- zzz
开放平台(TOP)的API是基于HTTP协议来调用的,开发者(ISV)可以直接使用TOP提供的官方SDK(支持多种语言,包含了请求的封装,签名加密,响应解释,性能优化等)来调用,也可以根据TOP的协议 ...
- Docker 的 Image 太大,怎么变小?
铛~铛~铛~Docker即将颠覆整个软件产业,从云计算平台到软件开发.测试,整个SDLC都会极度依赖Docker. 圈子里面一定有很多讨论Docker的话题,简而言之,Docker其实只解决一个问题: ...
- [转]jquery getJSON 数据联动(采用序列化和反序列化获取数据) .
<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> ...
- dubbo+zookeeper集群配置
集群服务注册到多台zookeeper配置: <dubbo:registry protocol="zookeeper" address="10.20.153.10:2 ...