<script>//身份证号合法性验证//支持18位身份证号//支持地址编码、出生日期、校验位验证function IdentityCodeValid(code) {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;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;}if (!city[code.substr(0, 2)]) {tip = "地址编码错误";pass = false;}if (code.length == 18) {sBirthday = code.substr(6, 4) + "-" + Number(code.substr(10, 2)) + "-" + Number(code.substr(12, 2));var d = new Date(sBirthday.replace(/-/g, "/"))if (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate())) {//alert("非法生日");pass = false;}}//18位身份证需要验证最后一位校验位if (code.length == 18) {code = code.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;}}return pass;}$(function () {document.write(IdentityCodeValid("410481199208156010"), "<br/>");document.write(IdentityCodeValid("340524198002300019"), "<br/>")document.write(IdentityCodeValid("340524197711111111"), "<br/>")document.write(IdentityCodeValid("34052419800101001x"), "<br/>");});</script>

JS身份证合法性校验完全版相关推荐

  1. 最牛js身份证号校验方法

    最牛js身份证号校验方法: function IdCodeValid(code){ //身份证号合法性验证 //支持15位和18位身份证号 //支持地址编码.出生日期.校验位验证 var city={ ...

  2. 身份证合法性校验规则

    身份证构成说明: 身份证号构成(从左到右): 第1-6位数是行政区域编码 第7到第14位是出生日期 第15-17位是同一天出生的顺序号(男的用奇数数,女的用偶数) 第18位是校验码,根据ISO7064 ...

  3. JS身份证号码校验,JS根据身份证号码获取出生年月日,JS根据出生年月日获取年龄,JS根据身份证号码获取性别

    目录 1.JS身份证号码校验 2.JS根据身份证号码获取出生年月日 3.JS根据出生年月日获取年龄 4.JS根据身份证号码获取性别 1.JS身份证号码校验 /*** 身份证校验** @export* ...

  4. java 代码实现身份证合法性校验(全国所有地方)

    很多地方可能都会用到对身份证要进行判断校验的功能,这个是之前在网上看到的,具体的网址都忘了,现在项目完成了,有时间把其整理下,方便自己和大家日后使用!(直接复制粘贴即可) package org.as ...

  5. vue中如何进行身份证合法性校验(身份证18位,包含最后一位数字/字母)

    文章目录 前言 正文 1. 首先,根据实际情况,目前我们使用的身份证由18位构成,包括数字和字母X.那么,在input输入框中就需要限制用户输入的数据类型. 2.其次,查看Element ui 组件库 ...

  6. java身份证工具类,身份证合法性校验,根据身份证获取生日、年龄、性别

    import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; /**  * 身份证号码校验工具 ...

  7. js身份证号校验方法(转载我的请注明哈哈)

    //时间变成两位数 function toTwo(n) {return +n < 10 ? '0' + n : n + ''; }; function Type(obj) {var arr = ...

  8. JS身份证号码校验大全史上最全号称公安局安全监测

    身份证号码校验 function testid(id) {// 1 "验证通过!", 0 //校验不通过 // id为身份证号码var format = /^(([1][1-5]) ...

  9. 最牛最全js身份证号校验方法

    //时间变成两位数 function toTwo(n) {return +n < 10 ? '0' + n : n + ''; }; function Type(obj) {var arr = ...

最新文章

  1. hadoop面试记录(一)
  2. 修改zabbix后台登录账号和密码,提升为超级管理员
  3. Spring Cloud构建微服务架构:服务消费(基础)【Dalston版】
  4. layui对json数据的格式要求
  5. linux 误删除mysql表能恢复吗,Linux中误删除数据文件和归档日志的恢复方法
  6. Visual Studio 2008 Windows Server 2008 预发布-20日在南宁
  7. 使用混合云的SQL Server
  8. 三白话经典算法系列 Shell排序实现
  9. SP2010开发和VS2010专家食谱--第四章节—列表定义和内容类型(7)--创建列表定义...
  10. SQL Server 2019中的行模式内存授予反馈
  11. Error: Could not link: /usr/local/share/doc/homebrew
  12. js通过codeURL画二维码
  13. html自我介绍5页模板,关于个人自我介绍模板6篇
  14. 回望2019,不仅是“自由自在“,更是 AI 领域不平凡的一年
  15. cote dlvoire_科特迪瓦-COTE D‘ IVOIRE-阿比让-ABIDJAN-港口介绍,港口介绍-环球运费网...
  16. 操作系统中多生产者多消费者问题中,关于生产者或消费者中的两个P操作是否可以互换问题
  17. 计算机组装与维修王利民版,计算机组装与维修(第5版)
  18. RabbitMQ简介及其六种工作模式
  19. Go 每日一库之 gorilla/handlers
  20. ‘svchost.exe-应用程序错误 0xc0000409’客户端无法登陆终端服务器之解决方法

热门文章

  1. 【bzoj3576】 Hnoi2014—江南乐
  2. cojs EX_香蕉 题解报告
  3. jQuery——入门(四)JQuery 事件
  4. [Vue.js] 基础 -- Vue实例
  5. Python_socketserver
  6. javascript获取当前日期时间及其一些操作
  7. Tips--开源心音数据库整理(我愿称之为史上最全)
  8. matlab中ncread读取nc文件其中一个三维参数的其中一维_Matlab使用技巧总结-1
  9. cad图形如何导入到奥维地图_【详细教程】奥维地图上查看项目的线路图或平面图...
  10. 7-41 大数的乘法 (10 分)