//身份证号合法性验证
//支持15位和18位身份证号
//支持地址编码、出生日期、校验位验证
function cidInfo(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[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(code)){tip = "身份证号格式错误";pass = false;}else if(!city[code.substr(0,2)]){tip = "地址编码错误";pass = false;}else{//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;}}}//if(!pass) alert(tip);return pass;
}
//身份证判断
function is_sfzh() {var ddlZjtype = $('#ddlZjtype').val();if (ddlZjtype == '居民身份证') {var sfzh = $('#sfzh').val();// 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X  var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;if (reg.test(sfzh) === false) {alert("身份证输入不合法");$('#sfzh').val('');return false;}}
}

包含验证 15位身份证 及18位身份证及最后数字的验证,很全的,拿走吧

js 身份证号码验证包含15位和18位相关推荐

  1. 请写代码校验第二代身份证号码有效性。程序接收一个18位的身份证号码和性别,根据以下规则输出号码是有效还是无效。

    请写代码校验第二代身份证号码有效性.程序接收一个18位的身份证号码和性别,根据以下规则输出号码是有效还是无效. 第二代身份证号组成规则: a) 身份证号码(18位)= 地址码(6)+ 出生日期码(8) ...

  2. js实现身份证号码验证(组成结构以及验证原理)

    今天一个客户反馈过来说用户身份证不能输入字母"X",让我看看怎么回事.看到客户发过来的截图,原来限制了只能输入数字.这个修改起来简单,二话不说打开代码,由于代码是同事写的,仔细看了 ...

  3. 身份证15位转18位(直接调用方法即可,简单方便!!!)

    背景: 将15位身份证号码转换为18位身份证号码的方法是: 在15位身份证号码前加上6位数字,即出生年份的前两位,地区编码的后两位,以及补全的两位数字,例如:19或20(以出生年份为准)+地区编码+补 ...

  4. JAVA 输入身份证号码进行验证正误,15位转18位,并解析出生日、当前年龄、地区代码、性别

    我们的身份证号码包含很多的信息,下面的代码提供了身份证的解析功能,具体看注释吧,已经写全了 import java.text.SimpleDateFormat; import java.util.Da ...

  5. 15/18位身份证号码验证的正则表达式总结(详细版)

    前言 开发过程中,常常需要对一些输入信息进行有效性验证,使用正则表达式进行校验是最简单.效率最高的方式了,下面就来看看15/18位身份证号码验证的正则表达式吧. 介绍 xxxxxx yyyy MM d ...

  6. 新旧身份证合法性验证及相互转换算法(三):Java身份证号码验证及将15位转换18位

    package test; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 身份证号码验证 * */ pub ...

  7. js中15位及18位身份证号码的校验

    15位身份证结构: 地区代码(6位),年(2位)月(2位)日(2位),顺序码(3位,最后1位偶数代表女,奇数代表男) 18位身份证结构: 地区代码(6位),年(4位)月(2位)日(2位),顺序码(3位 ...

  8. 15/18位身份证号码验证

    15/18位身份证号码验证 在做身份证验证之前你得明确身份证号的组成. 首先我告诉你,18位身份证号码后面的字母只有"X"这一个.(X是罗马数字的10,用X来代替10,可以保证您的 ...

  9. 中国身份证号码验证,支持15,18位,可验证成功90%的身份证号

    using System;/// <summary> /// Summary description for IDCardValid /// </summary> public ...

  10. javascript 15位和18位身份证的正则表达式及其验证

    1.简单的正则表达式: (1)preg_match("/^(\d{18,18}|\d{15,15}|\d{17,17}x)$/",$id_card) (2)preg_match(& ...

最新文章

  1. SpringCloud 2020版本教程4:使用spring cloud sleuth+zipkin实现链路追踪
  2. Pandownload惊喜复活!下载速度惊人!
  3. OCR光学字符识别方法汇总(附开源代码)
  4. linux下的zz命令,linux中cut命令的用法
  5. 网站栏目该如何做SEO优化?
  6. java切面不需要接口了吗_使用java语言,如何对一个类中的静态方法做切面编程?...
  7. minecraft服务器_如何启动自己的Minecraft服务器进行多人游戏
  8. [设计模式]模板方法模式
  9. POE工业交换机的四种接法详解
  10. Python 数据类型--Bytes类型
  11. java 线程分组_Java多线程可以分组,还能这样玩!
  12. Markdown简明使用
  13. (二)stm32之中断配置
  14. java泛型区间_JAVA 14(泛型)
  15. Java中的Map List Set等集合类
  16. Git是目前世界上最先进的分布式版本控制系统(没有之一)。
  17. linux内核丢包分析工具,Linux模拟网络丢包与延迟的方法
  18. 为PHP添加swoole异步并行扩展
  19. java 通过反射获取数组
  20. 一个简单的跑酷引擎-------bibibibi

热门文章

  1. mysql误删除数据恢复处理
  2. 基于深度相机的下肢外骨骼的自适应梯级步态生成方法
  3. 《现代信息检索导论》课程梳理
  4. 各公司对前端职位描述
  5. 混合现实开发教程unity2017
  6. leetcode_Restore IP Addresses
  7. 《30天自制操作系统》-day2(MAC)
  8. 爬取豆瓣音乐Top250详细教程
  9. 课堂笔记 Numpy酒鬼漫步
  10. 免费网站搭建与phpstorm远程部署