HTML身份证号校验及根据身份证号获取出生日期/性别
一、HTML的方法都写在js里
若HTML、JS、CSS在一个HTML文件中,在HTML中使用HTML需要借助<scirpt>标签,使用<script>标签的方式有两种:
一种是直接在<script>标签中嵌入JavaScript代码(本文使用该方法)
另一种是用<script>的src属性引入外部JavaScript文件
参考[1]:在HTML中使用JavaScript
二、代码示例:
1、验证身份证号的合法性:
// 验证身份证号的合法性function checkIdNo(cid){ var arrExp = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];//加权因子var arrValid = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2];//校验码if(/^\d{17}\d|x$/i.test(cid)){var sum = 0, idx;for(var i = 0; i < cid.length - 1; i++){// 对前17位数字与权值乘积求和sum += parseInt(cid.substr(i, 1), 10) * arrExp[i];}// 计算模(固定算法)idx = sum % 11;// 检验第18为是否与校验码相等return arrValid[idx] == cid.substr(17, 1).toUpperCase();}else{return false; } }
2、根据身份证号获取出生日期:
//获取出生日期
function getBirthFromCId(cid) {var birth = ""; if(cid != null && cid != ""){if(cid.length == 15){ birth = "19"+cid.substr(6,6); } else if(cid.length == 18){ birth = cid.substr(6,8); } birth = birth.replace(/(.{4})(.{2})/,"$1-$2-"); } return birth;
}
获取后,userMap拿到出生日期,需要调用方法(数据库中身份证号列名:cIdNo)
// 前端封装数据Map获取出生日期
userMap.birth=getBirthFromCId(cIdNo);
3、通过出生日期获取性别:
//通过出生日期获取性别function getGenderByIDNo(IDNo){if(IDNo!=null && IDNo!=''&& IDNo.length==18){ if (parseInt(IDNo.substr(16, 1)) % 2 == 1) {return 1; // 男} else {return 0; // 女} }
}
4、所有代码:
<!DOCTYPE html>
<html><head></head><body><div></div><script>// 验证身份证号的合法性function checkIdNo(cid){ var arrExp = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];//加权因子var arrValid = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2];//校验码if(/^\d{17}\d|x$/i.test(cid)){var sum = 0, idx;for(var i = 0; i < cid.length - 1; i++){// 对前17位数字与权值乘积求和sum += parseInt(cid.substr(i, 1), 10) * arrExp[i];}// 计算模(固定算法)idx = sum % 11;// 检验第18为是否与校验码相等return arrValid[idx] == cid.substr(17, 1).toUpperCase();}else{return false; } }//获取出生日期function getBirthFromCId(cid) {var birth = ""; if(cid != null && cid != ""){if(cid.length == 15){ birth = "19"+cid.substr(6,6); } else if(cid.length == 18){ birth = cid.substr(6,8); } birth = birth.replace(/(.{4})(.{2})/,"$1-$2-"); } return birth; }//通过出生日期获取性别function getGenderByIDNo(IDNo){if(IDNo!=null && IDNo!=''&& IDNo.length==18){ if (parseInt(IDNo.substr(16, 1)) % 2 == 1) {return 1; // 男} else {return 0; // 女} } } </script></body>
</html>
5、我项目中的blur事件(记给自己看的,也在script中)
//对身份证号blur,自动修改页面上性别的点击事件
$(document).on("blur","#cIdNo",function(){ var idno = $(this).val();var gender = getGenderByIDNo(idno); //调用方法从身份证号获得性别if(gender==1){$('.img_man').click(); //调用性别为“男”的点击事件}else{$('.img_woman').click();//调用性别为“女”的点击事件} })
$(document).on(‘click’,‘要选择的元素’,function(){}) 用于动态事件的绑定
$(this).val();获取某个元素节点的value值,相当于$(this).attr(“value”);
参考[2]:$(选择器).click()和$(document).on(‘click‘,‘要选择的元素‘,function(){})的用法与不同:
参考[3]:$(document).on和$('.className').on区别
参考[4]:jquery中$(document).on的一些不解
参考[5]:jquery $(this).attr $(this).val方法使用介绍
HTML身份证号校验及根据身份证号获取出生日期/性别相关推荐
- 严格身份证格式校验,真实身份证号校验方法文件CheckIdCardUtil.js
业务需求,需要用到非常严格的身份证号格式校验 这里校验方法经过测试真实身份证号码日期改一位都不行,必须完全真实号码 以下内容是项目中用到的校验方法,记录下来防止以后再用到 import check f ...
- java身份证工具类,身份证合法性校验,根据身份证获取生日、年龄、性别
import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; /** * 身份证号码校验工具 ...
- 身份证实名校验接口,身份证二要素核验接口,身份证查询API接口【零存储,数据直连】
一.接口介绍 验证身份证与姓名是否匹配,查询身份证信息.如校验通过,接口返回生日.性别.地址等信息.广泛应用于信贷.安防.银行.保险等行业及各种身份核查场景. 注意:当请求参数符合"[固定同 ...
- 使用 python 进行身份证号校验
使用 python 代码进行身份证号校验 先说,还有很多可以优化的地方. 1.比如加入15位身份证号的校验,嗯哼,15位的好像没有校验,那就只能提取个出生年月日啥的了. 2.比如判断加入地址数据库,增 ...
- js身份证号校验方法(转载我的请注明哈哈)
//时间变成两位数 function toTwo(n) {return +n < 10 ? '0' + n : n + ''; }; function Type(obj) {var arr = ...
- 最牛最全js身份证号校验方法
//时间变成两位数 function toTwo(n) {return +n < 10 ? '0' + n : n + ''; }; function Type(obj) {var arr = ...
- Delphi:校验手机号及身份证号
//校验手机号 function IsMobileNumber( num:string ):boolean; begin Result:=False; if length( t ...
- C语言基础入门48篇_26_身份证号校验程序(以身份证的校验方式是实例加深对数组及函数封装的理解、字符-‘0‘得到字符对应的int类型数字)
本篇根据以二代身份证的校验方式是实例加深对数组及函数封装的理解 1. 第二代身份证号的组成 第二代身份证号为18位,各位数字对应了不同的信息(以下顺序从左往右): AABBCCYYYYMMDDXXXV ...
- 用Python进行身份证号校验
在日常应用中,经常需要输入身份证号,因为号码较长容易录错,因此需要进行实时校验,以尽可能保证输入正确.以下以Python为例,浅聊身份证号码校验的方法. 首先我们需要了解身份证号各个号段的意义.身份证 ...
最新文章
- 零基础python从入门到精通 pdf-PYTHON从入门到精通 PDF 下载
- 【ST表】栈(jzoj 2295)
- Java 程序员必须掌握的 5 个注解
- LeetCode 49. 字母异位词分组(哈希)
- 使用Zeigarnik效应来学习编码更快
- 【WP7】绘图与保存
- DOM学习之路--Mr.Ember
- 需要知道的面向对象设计的基本原则
- LabView学习笔记——简易入门AND初级实战项目(计算器)
- 【PS】抠图教程(0基础快速入门)
- android 罗盘陀螺仪,电子罗盘和陀螺仪的区别以及工作原理介绍
- python编程实例题目
- 网站添加错误页面提示功能(404、500错误提示)
- halcon测试篇:求两条线之间的交点
- R语言:Windows字体数据库里没有这样的字体
- 【C语言程序设计】C语言求最小公倍数(详解版)!
- 24点游戏 java实现_java实现24点纸牌游戏
- 使用KMS批量激活操作系统
- 【原创纯手打】如何用VUE在拖拽小框中同步更换壁纸(附代码)
- linux 进阶命令笔记(12月26日)