javascript验证香港身份证的格式或真实性

发布时间 - 2026-01-10 22:54:18    点击率:

话不多说,请看代码

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身份证验证  # 香港身份证验证  # Javascript使用正则验证身份证号(简单)  # js验证真实姓名与身份证号  # 手机号的简单实例  # js验证真实姓名与身份证号是否匹配  # JavaScript正则表达式验证身份证号码是否合法(两种方法)  # 如何用javascript正则表达式验证身份证号码是否合法  # javascript验证身份证号  # js实现二代身份证号码验证详解  # js 验证身份证信息有效性  # js实现身份证号码验证的简单实例  # js 第二代身份证号码的验证机制代码  # 都没  # 很久  # 这段  # 请使用  # 找了  # 可以使用  # 香港  # 那段  # 多说  # 在网上  # 国外  # false  # handling  # bracket  # length  # lt  # return  # charAt  # upper  # case 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 浅谈javascript alert和confirm的美化  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  南京网站制作费用,南京远驱官方网站?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  非常酷的网站设计制作软件,酷培ai教育官方网站?  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  如何在宝塔面板创建新站点?  如何实现建站之星域名转发设置?  MySQL查询结果复制到新表的方法(更新、插入)  如何快速搭建高效WAP手机网站?  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  Python进程池调度策略_任务分发说明【指导】  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  大同网页,大同瑞慈医院官网?  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  如何在阿里云完成域名注册与建站?  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  香港服务器网站推广:SEO优化与外贸独立站搭建策略  如何在阿里云购买域名并搭建网站?  如何在阿里云服务器自主搭建网站?  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  如何在万网主机上快速搭建网站?  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  JS弹性运动实现方法分析  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  简历没回改:利用AI润色让你的文字更专业  iOS UIView常见属性方法小结  实例解析Array和String方法  清除minerd进程的简单方法  教你用AI润色文章,让你的文字表达更专业  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践  详解Huffman编码算法之Java实现  HTML 中动态设置元素 name 属性的正确语法详解  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】  详解MySQL数据库的安装与密码配置