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

前言

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

介绍

xxxxxx yyyy MM dd 375 0     十八位

xxxxxx    yy MM dd   75 0     十五位

地区: [1-9]\d{5}

年的前两位: (18|19|([23]\d))            1800-2399

年的后两位: \d{2}

月份: ((0[1-9])|(10|11|12))

天数: (([0-2][1-9])|10|20|30|31)          闰年不能禁止29+

三位顺序码: \d{3}

两位顺序码: \d{2}

校验码: [0-9Xx]

正则表达式

十八位: ^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$

十五位: ^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$

总:

^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)

简单的JS验证示例

?

function isCardNo(card)

{

// 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X

var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;

if(reg.test(card) === false)

{

alert("身份证输入不合法");

return false;

}

}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

另外加一个 台湾人和香港人 身份证 正则表达式   /^[a-zA-Z][0-9]{9}$/

时间: 2024-11-17 00:38:08

15/18位身份证号码验证的正则表达式总结(详细版)的相关文章

18位身份证号验证及信息获取

止乎于分享! IDCode18 = { validate: function (value) { if (value.length != 18) return false; var value = value.toLowerCase(); var sum = 0, v = '10x98765432', w = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2], a = '11,12,13,14,15,21,22,23,31,32,33,3

python操作redis之随机生成18位身份证号码

写一个随机生成身份证号的程序,输入多少条就产生多少个,?把产生完的数据写到redis里面,key用哈希类型?Xiaohei 410881198312031241 其中配置文件confsetting.py里的常量有: # 系统常量,包含: # LAST_NAME: 姓 # FIRST_NAME: 名 # STATE_CODE:全国大陆地区及编码 REDIS_IP = '172.16.2.163' RedisIp REDIS_PORT = 6379 REDIS_PASSWD = '222333' R

比较严谨的java验证18位身份证号码

/** * 我国公民的身份证号码特点如下 * 1.长度18位 * 2.第1-17号只能为数字 * 3.第18位只能是数字或者x * 4.第7-14位表示特有人的年月日信息 * 请实现身份证号码合法性判断的函数,函数返回值: * 1.如果身份证合法返回0 * 2.如果身份证长度不合法返回1 * 3.如果第1-17位含有非数字的字符返回2 * 4.如果第18位不是数字也不是x返回3 * 5.如果身份证号的出生日期非法返回4 * * @since 0.0.1 */ private int valida

18位身份证号码结构的系数算法

看了园子里一个随笔 http://www.cnblogs.com/10158wsj/p/7050736.html 身份证17位数分别乘以不同的系数.从第1位到第17位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2. 将这17位数字和系数相乘的结果相加 将step3的结果除以11,得出余数 由于数字的特殊性,这些余数只可能是0-10这11个数字,身份证最后一位的对应数字为1-0-X-9-8-7-6-5-4-3-2.. 系数怎么来的呢? 2^7%11-2^6%1

中国居民18位身份证号验证方法,Java算法实现

public static boolean validate18Idcard(String idcard){ if(idcard == null ) { return false; } if(idcard.length()!=18) { return false; } char [] id =idcard.toCharArray(); int i, sum, n; for (sum = i = 0; i < 17; i++){ sum += ((1 << (17 - i)) % 11)

C#实现身份证号码验证的方法

本文实例讲述了C#实现身份证号码验证的方法.分享给大家供大家参考.具体实现方法如下: 随着现在互联网的发展,越来越多的注册用户的地方都用到了身份证,那么对于输入的身份证如何验证呢?看下面的代码,其实很简单. 主要注意的是,目前的身份证分为16和18位,然后分别验证校验位,省份,生日即可. 主要类如下: /// <summary> /// 验证身份证号码类 /// </summary> public class IDCardValidation { /// <summary&g

编程乐趣:身份证号码验证的方法

随着如今互联网的发展,越来越多的注冊用户的地方都用到了身份证.那么对于输入的身份证怎样验证呢?看以下的代码,事实上非常easy.主要注意的是,眼下的身份证分为16和18位,然后分别验证校验位.省份,生日就可以.主要类: /// <summary> /// 验证身份证号码类 /// </summary> public class IDCardValidation { /// <summary> /// 验证身份证合理性 /// </summary> /// &

身份证号码验证及其相关!

2015-11-16 16:35:32 小写转大写:toUpper(); 大写转小写:toLower(); 替换:Replace('X','Y'); 将字符串转换为字符数组:toCharArray(); 从X处取出Y个字符:string.Substring(ing x,int y); 在X处插入Y:string.Insert(int X,string Y); 用x分割:string.Split('x'); 验证18位身份证号(包含小写x): 1 /// <summary> 2 /// 18位身

js验证15位或18位身份证

本篇文章是本人在网上搜集了一些验证,然后又个人进行一定修改的关于身份证的验证,欢迎修改指正..... function IdCardValidateRule(idCard) { var tip;    //1.传入15位或者18位身份证号码,18位号码末位可以为数字或X    idCard = idCard.toUpperCase();    //2.去掉身份证的左右空格    idCard = trim(idCard);    //3.判断输入的身份证长度    if (!(/(^\d{15}