js 身份证号码验证包含15位和18位
//身份证号合法性验证 //支持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位相关推荐
- 请写代码校验第二代身份证号码有效性。程序接收一个18位的身份证号码和性别,根据以下规则输出号码是有效还是无效。
请写代码校验第二代身份证号码有效性.程序接收一个18位的身份证号码和性别,根据以下规则输出号码是有效还是无效. 第二代身份证号组成规则: a) 身份证号码(18位)= 地址码(6)+ 出生日期码(8) ...
- js实现身份证号码验证(组成结构以及验证原理)
今天一个客户反馈过来说用户身份证不能输入字母"X",让我看看怎么回事.看到客户发过来的截图,原来限制了只能输入数字.这个修改起来简单,二话不说打开代码,由于代码是同事写的,仔细看了 ...
- 身份证15位转18位(直接调用方法即可,简单方便!!!)
背景: 将15位身份证号码转换为18位身份证号码的方法是: 在15位身份证号码前加上6位数字,即出生年份的前两位,地区编码的后两位,以及补全的两位数字,例如:19或20(以出生年份为准)+地区编码+补 ...
- JAVA 输入身份证号码进行验证正误,15位转18位,并解析出生日、当前年龄、地区代码、性别
我们的身份证号码包含很多的信息,下面的代码提供了身份证的解析功能,具体看注释吧,已经写全了 import java.text.SimpleDateFormat; import java.util.Da ...
- 15/18位身份证号码验证的正则表达式总结(详细版)
前言 开发过程中,常常需要对一些输入信息进行有效性验证,使用正则表达式进行校验是最简单.效率最高的方式了,下面就来看看15/18位身份证号码验证的正则表达式吧. 介绍 xxxxxx yyyy MM d ...
- 新旧身份证合法性验证及相互转换算法(三):Java身份证号码验证及将15位转换18位
package test; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 身份证号码验证 * */ pub ...
- js中15位及18位身份证号码的校验
15位身份证结构: 地区代码(6位),年(2位)月(2位)日(2位),顺序码(3位,最后1位偶数代表女,奇数代表男) 18位身份证结构: 地区代码(6位),年(4位)月(2位)日(2位),顺序码(3位 ...
- 15/18位身份证号码验证
15/18位身份证号码验证 在做身份证验证之前你得明确身份证号的组成. 首先我告诉你,18位身份证号码后面的字母只有"X"这一个.(X是罗马数字的10,用X来代替10,可以保证您的 ...
- 中国身份证号码验证,支持15,18位,可验证成功90%的身份证号
using System;/// <summary> /// Summary description for IDCardValid /// </summary> public ...
- javascript 15位和18位身份证的正则表达式及其验证
1.简单的正则表达式: (1)preg_match("/^(\d{18,18}|\d{15,15}|\d{17,17}x)$/",$id_card) (2)preg_match(& ...
最新文章
- SpringCloud 2020版本教程4:使用spring cloud sleuth+zipkin实现链路追踪
- Pandownload惊喜复活!下载速度惊人!
- OCR光学字符识别方法汇总(附开源代码)
- linux下的zz命令,linux中cut命令的用法
- 网站栏目该如何做SEO优化?
- java切面不需要接口了吗_使用java语言,如何对一个类中的静态方法做切面编程?...
- minecraft服务器_如何启动自己的Minecraft服务器进行多人游戏
- [设计模式]模板方法模式
- POE工业交换机的四种接法详解
- Python 数据类型--Bytes类型
- java 线程分组_Java多线程可以分组,还能这样玩!
- Markdown简明使用
- (二)stm32之中断配置
- java泛型区间_JAVA 14(泛型)
- Java中的Map List Set等集合类
- Git是目前世界上最先进的分布式版本控制系统(没有之一)。
- linux内核丢包分析工具,Linux模拟网络丢包与延迟的方法
- 为PHP添加swoole异步并行扩展
- java 通过反射获取数组
- 一个简单的跑酷引擎-------bibibibi