zoukankan      html  css  js  c++  java
  • 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验证示例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    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;
    }
    }

    总结

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

  • 相关阅读:
    【BZOJ3926】诸神眷顾的幻想乡 【广义后缀自动机】
    【BZOJ2780】Sevenk Love Oimaster【广义后缀自动机】
    【BZOJ3227】串【广义后缀自动机】
    【CodeForces
    【BZOJ3238】差异【后缀自动机+dp】
    【BZOJ4566】找相同字符【后缀自动机】
    【BZOJ3998】弦论 【后缀自动机】
    【poj1743】Musical Theme 【后缀自动机】
    【SPOJ
    【SPOJ
  • 原文地址:https://www.cnblogs.com/qqhfeng/p/10558902.html
Copyright © 2011-2022 走看看