前端身份证号码校验js代码
今天把项目前端的身份证号码从最初的只是校验长度改为只允许正规的号码,具体内容如下
功能主要校验 年月日 地址 格式 以及最后一位的校验
var code="123132132121"
var city={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江 ",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北 ",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏 ",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外 "};var tip = "";var pass= true;var year = code.substr(6,4); var mounth = code.substr(10,2);var day = code.substr(12,2);if(!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(code)){
tip = "身份证号格式错误";pass = false;}else if(!city[UUserCard.substr(0,2)]){tip = "地址编码错误";pass = false;}if(((year%400==0)||year%100!=0)&&year%4==0){if(mounth=='02'){if(day*1>29){pass = false; }}}else{if(mounth=='02'){if(day*1>28){pass = false;}}}
//18位身份证需要验证最后一位校验位if(UUserCard.length == 18){code = UUserCard.split('');//∑(ai×Wi)(mod 11)//加权因子var factor = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ];//校验位var parity = [ 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 ];var sum = 0;var ai = 0;var wi = 0;for (var i = 0; i < 17; i++){ai = code[i];wi = factor[i];sum += ai * wi;}var last = parity[sum % 11];if(parity[sum % 11] != code[17]){tip = "校验位错误";pass =false;}}if(!pass){//校验失败 填写你要做的内容};
以上为主要代码,具体还要看你用什么方式实现
前端身份证号码校验js代码相关推荐
- validate格式校验之身份证号码校验
//校验身份证号码 function isIdCardNo(num) { var factorArr = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5 ...
- JS身份证号码校验,JS根据身份证号码获取出生年月日,JS根据出生年月日获取年龄,JS根据身份证号码获取性别
目录 1.JS身份证号码校验 2.JS根据身份证号码获取出生年月日 3.JS根据出生年月日获取年龄 4.JS根据身份证号码获取性别 1.JS身份证号码校验 /*** 身份证校验** @export* ...
- JS身份证号码校验大全史上最全号称公安局安全监测
身份证号码校验 function testid(id) {// 1 "验证通过!", 0 //校验不通过 // id为身份证号码var format = /^(([1][1-5]) ...
- vue身份证号码校验
一.vue身份证号码校验? let checkRegNo = (rule,value,callback) => { setTimeout(() => { const ...
- 中国公民身份证号码校验
中国公民身份证号码校验 上图可看出18位位身份证每一部分表示的意义. 图为随机生成身份号码,四川省 乐山市 井研县 1981年12月28日生 这里主要讲解最后一位校验码的验证 校验码主要是由前面17位 ...
- 10年前写的,身份证号码验证VBA代码
工作中经常与身份证号码打交道,现在各类信息系统都把身份证号码作为识别定义人员的关键字段,下面这段代码,在我的工作中发挥了极其重要的作用!分享出来,希望能帮助到更多的人! 10年前写的,if套if,格式 ...
- 使用Java编写Hive的UDF实现身份证号码校验及15位升级18位
使用Java编写Hive的UDF实现身份证号码校验及15位升级18位 背景 在数仓项目中,有时候会根据身份证信息做一些取数filter或者条件判断的相关运算进而获取到所需的信息.古人是用Oracle做 ...
- 基于可视化结构的身份证号码校验系统-树莓派实现
基于可视化结构的身份证号码校验系统 摘要: 本作品是一个通用的身份证号码校验系统,目前已经尝试在Linux和Windows系统下运行,结果均可达到理想效果.系统通过运用基础GUI库tkinter创建系 ...
- java版本身份证号码校验与卫语句
最近在公司做项目时,有一个小功能点就是身份证号码校验,即判断是否是合理的身份证号码.不想重复造轮子,想着公司的一些基础组件可能有这个功能,一找还真有,原作者代码逻辑应该是正确的,但是风格有点呵呵了,各 ...
最新文章
- ​HealthKit开发快速入门教程之HealthKit数据的操作
- WEB数据挖掘(八)——Aperture数据抽取(4):Aperture整体结构
- PInvoke复习之深入理解char*与wchar_t*与string以及wstring之间的相互转换
- 【Socket网络编程】15. 发送端和接收端数据大小不一致时 的分析
- 【Linux】——常见的rc的含义
- python中的insert函数_Python numpy.insert函数方法的使用
- 帝国cms调用相关文章若没有则调取最新文章
- 用turtle画皮卡丘
- Navicat for MySQL中如何新建用户并赋予权限
- 重读博弈论(四)-重要的基本概念的理解:风险爱好、风险中性、风险厌恶(风险避规)...
- 弱网测试用什么农_弱网测试--使用fiddler进行弱网测试
- Tensorflow:tf.contrib.lookup索引构建和查询
- 深入学习c++(虚函数遇到析构函数就退化了)
- Golang语言编程规范
- 飞客蠕虫(Conficker)
- 安卓如何修改dns服务器地址,安卓手机怎么修改DNS?安卓手机修改DNS服务器图文详情介绍[多图]...
- 如何提高阿里云商标注册的成功率?(经验分享)
- 抖音小店怎么去添加淘宝链接?哪种推广适合淘客丨国仁网络资讯
- Flutter 启动页适配
- 明星玩跨界,全民娱乐时代来临!