PHP 验证香港身份证ID号
/**
check hk idcard
$id = "K548653A";
$xx= check_hkid($id);
var_dump($xx);
**/
function check_hkid($id)
{
    if (!preg_match("/^[a-zA-Z][0-9]{6}[0-9aA]$/", $id)) {
        return false;
    }
    $mul = 8;
    $sum = (ord(strtoupper($id))-64) * $mul;
    while($mul>1) {
        $sum += intval(substr($id, 8 - $mul, 1)) * $mul;
        $mul --;
    }
    $chksum = dechex(strval(11-($sum % 11)));//dec to hex
    if ($chksum == 'b') {
        $chksum = 0;
    }
    return $chksum == strtolower(substr($id, 7, 1));
}
JS
private function check_hkid(id) {
if (!id.match(/^[a-zA-Z][0-9]{6}[0-9aA]$/)) return false;
var mul = 8, sum = (id.toUpperCase().charCodeAt()-64) * mul--;
while (mul>1) sum += parseInt(id.substr(8-mul, 1)) * mul--;
var chksum = (11-(sum % 11)).toString(16);
if (chksum == "b") chksum = "0";
return chksum == id.substr(7,1).toLowerCase();
}
PHP 验证香港身份证ID号的更多相关文章
- javascript验证香港身份证
		
var assert = require('assert'); describe('test', function() { it('coc', function() { var testCard01 ...
 - Javascript 香港身份证号校验
		
<!DOCTYPE html> <html> <head> <title>香港身份证校验码计算</title> </head> ...
 - c# 身份证证号验证方法
		
#region 验证身份证是否有效 /// <summary> /// 验证身份证是否有效 /// </summary> ...
 - 【MVC 2】MVC+EF框架结构实例:注册ID号验证
		
导读:本篇博客,将通过一个实例,详细介绍MVC+EF的应用.原理性的东西或者说是进一步的解耦和,请看博客: [框架结构 3]MVC+EF实体框架-原理解析.在这里,仅用MVC框架和一个EF生成的Mod ...
 - 检查字符串长度 检查字符串是否为空  用正则表达式验证出版物的ISBN号   用正则表达式验证邮证编码 验证字符串中是否含有汉字
		
<?php /** * 常用的正则表达式来验证信息.如:网址 邮箱 手机号等 */ class check { /** * 正则表达式验证email格式 * * @param string $s ...
 - 基于ARM-contexA9-Linux驱动开发:如何获取板子上独有的ID号
		
每个CPU,都有它固定的ID号,ID号就是这个CPU唯一的标识,它可能隐含着CPU的生产日期,版本号,型号等等,那么,在我们的这款友善之臂Tiny4412的板子上,我的这个CPU的ID又是多少呢?从我 ...
 - 如何获取板子上独有的ID号EXYNOS4412/Imx6ul【转】
		
本文转载自:http://blog.csdn.net/u010871058/article/details/75637175 每个CPU,都有它固定的ID号,ID号就是这个CPU唯一的标识,它可能隐含 ...
 - 拿到添加对象的id号方法
		
以前Hibernate添加对象,想拿到id号的时候都是根据id排序拿到第一条 ,才知道 这样也可以 /** * @Description: 添加一个角色信息 * @ret ...
 - 黄聪:WordPress 多站点建站教程(五):获取子站点用户信息(通过输入站点ID号来获取该站点的所有用户)
		
得到站点ID为1的用户 <ul> <?php $blogusers = get_users('blog_id=1'); foreach ($blogusers as $user) { ...
 
随机推荐
- Codeforces 898 贪心关闭最少闹钟 优先队列最少操作构造N/2squares  讨论情况哈希数字串分割a+b=c
			
A /* Huyyt */ #include <bits/stdc++.h> #define mem(a,b) memset(a,b,sizeof(a)) #define mkp(a,b) ...
 - poj1419 Graph Coloring 最大独立集(最大团)
			
最大独立集: 顶点集V中取 K个顶点,其两两间无连接. 最大团: 顶点集V中取 K个顶点,其两两间有边连接. 最大独立集=补图的最大团最大团=补图的最大独立集 #include<iostream ...
 - HMM 传统后向算法
			
HMM 传统后向算法,已实现,仅供参考. package jxutcm.edu.cn.hmm.model; import jxutcm.edu.cn.hmm.bean.HMMHelper; impor ...
 - Xunsearch入门
			
Xunsearch入门 简介: 开源免费.高性能.多功能.简单易用的专业全文检索技术方案. 1.Xunsearch安装: (1)官网(http://xunsearch.com)下载 wget http ...
 - QByteArray引发的bug
			
QByteArray引发的bug 在接收UDP数据的函数里,有如下代码片段 if(0x10 == data.size() && 0xCA == (unsigned char)data. ...
 - Synchronized 失效原因
			
Synchronized 同步出现失效 Synchronized ,大家都知道这个是Java 提供的一种原子性内置锁,其实现原理是通过获取对象的监视器monitor进行来实现同步的,只有当线程获取到对 ...
 - ubuntu日常
			
1804 处理 1,修改为固定ip vim /etc/netplan/01-netcfg.yaml network: version: 2 renderer: networkd ethernets: ...
 - linux system函数引发的错误
			
转: https://my.oschina.net/renhc/blog/54582 先看一下问题 简单封装了一下system()函数: int pox_system(const char *cm ...
 - mysql LAST()函数 语法
			
mysql LAST()函数 语法 作用:返回指定的字段中最后一个记录的值. 语法:SELECT LAST(column_name) FROM table_name 注释:可使用 ORDER BY 语 ...
 - mysql ALTER TABLE语句 语法
			
mysql ALTER TABLE语句 语法 作用:用于在已有的表中添加.修改或删除列.无铁芯直线电机 语法:添加列:ALTER TABLE table_name ADD column_name da ...