zoukankan      html  css  js  c++  java
  • C# 正则表达式 学习笔记二

    1、身份证格式验证(不保证有效性)

       * 身份证15位编码规则:dddddd yymmdd xx p
       * dddddd:6位地区编码
       * yymmdd: 出生年(两位年)月日,如:910215
       * xx: 顺序编码,系统产生,无法确定
       * p: 性别,奇数为男,偶数为女
       * 
       * 身份证18位编码规则:dddddd yyyymmdd xxx y
       * dddddd:6位地区编码
       * yyyymmdd: 出生年(四位年)月日,如:19910215
       * xxx:顺序编码,系统产生,无法确定,奇数为男,偶数为女
       * y: 校验码,该位数值可通过前17位计算获得
       * 
      * 前17位号码加权因子为 Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ]
       * 验证位 Y = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ]
       * 如果验证码恰好是10,为了保证身份证是十八位,那么第十八位将用X来代替
       * 校验位计算公式:Y_P = mod( ∑(Ai×Wi),11 )
       * i为身份证号码1...17 位; Y_P为校验码Y所在校验码数组位置

      string pattern = @"^(^[1-9]d{7}((0d)|(1[0-2]))(([0|1|2]d)|3[0|1])d{3}$)|(^[1-9]d{5}[1-9]d{3}((0d)|(1[0-2]))(([0|1|2]d)|(3[0-1]))((d{4})|(d{3}[xX]))$)$";

    2、固定电话验证

    •  因为固定电话格式比较复杂,情况比较多,主要验证了以下类型
      •   如:010-12345678、0912-1234567、(010)-12345678、(0912)1234567、(010)12345678、(0912)-1234567、01012345678、09121234567

           string pattern = @"^(^0d{2}-?d{8}$)|(^0d{3}-?d{7}$)|(^(0d{2})-?d{8}$)|(^(0d{3})-?d{7}$)$";

     3、日期格式验证

           2016-09-12 、2016-9-6、 2016/9/09、2016.09.12、20160912、

           string pattern = @"^[1-9]d{3}([-|/|.])?((0?[1-9])|(1[0-2]))([-|/|.])?((([0|1|2])?[1-9])|(3[0-1]))$";

  • 相关阅读:
    vmware ubuntu 异常关机无法连接到网络
    Speed up GCC link
    常用的一些解压命令
    Log4j 漏洞复现
    Test Case Design method Boundary value analysis and Equivalence partitioning
    CCA (Citrix Certified Administrator) exam of “Implementing Citrix XenDesktop 4”
    What is Key Word driven Testing?
    SAP AGS面试小结
    腾讯2013终端实习生一面
    指针的引用
  • 原文地址:https://www.cnblogs.com/yunxiaguo/p/5610613.html
Copyright © 2011-2022 走看看