zoukankan      html  css  js  c++  java
  • 正则表达式之18位身份证号,手机号,邮箱,日期

    匹配18位身份证号,正则表达式如下:

    /^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|31)|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}([0-9]|x|X)$/

    说明:现在身份证号都已经是18位了,没必要再去考虑匹配15位。

    18位身份证号组成:6位地区号+4位年+4位月日+3位编号+1位新生成编号

    逻辑:

    1)6位地区号:首位非0,后五位数字。对应正则:[1-9][0-9]{5}

    2)4位年:19或20开头,后两位数字。对应正则:(19|20)[0-9]{2}

    3)4位月日:

      i)大月31天。对应正则:(01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|31)

      ii)小月30天。对应正则:(04|06|09|11)(0[1-9]|[1-2][0-9]|30)

      iii)2月28天或29天。对应正则:02(0[1-9]|[1-2][0-9])

    4)3位编号:三位数字。对应正则:[0-9]{3}

    5)1位新生成编号:数字或x。对应正则:([0-9]|x|X)

    现仅剩以下缺点(不太用到):

    1)未匹配闰年

    2)未匹配前三位地区编号是否存在

    最后附上:

    【手机号正则】

    /^1[3-8][0-9]{9}$/

    【邮箱正则】

    /^w+([.]w+)?[@]w+[.]w+([.]w+)?$/

    【网址正则】

    (https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]

    【日期】

     /^((19|20)[0-9]{2})-((0[1-9])|10|11|12)-(([0-2][0-9])|30|31)$/

    【文件名/:*?'"<>】

    //|:|*|?|'|"|<|>|\/

    【2位小数】

    /^[0-9]+(.[0-9]{1,2})?$/

  • 相关阅读:
    Hystrix源码分析(一)
    docker虚拟ip和项目地ip冲突问题解决
    Hystrix入门demo
    为什么spirng扫描到@compent会把对象注册到容器上
    hive安装与基本操作
    hadoop基本安装
    spring session 存到数据库的设置
    React加Ant Design实现的一个登陆界面及小案例
    一个获取天气预报数据的小案例
    React学习笔记案例2
  • 原文地址:https://www.cnblogs.com/kandyvip/p/4597337.html
Copyright © 2011-2022 走看看