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]))$";

  • 相关阅读:
    Go学习笔记(四)Go自动化测试框架
    VSCode快捷键
    Go学习笔记(三)Go语言学习
    Go学习笔记(二)搭建Visual Studio Code调试环境
    Go学习笔记(一)安装Go语言环境
    C# HTTPServer和OrleansClient结合
    C# Post HTTP Request
    Unity3D UGUI Shader画一个圆环
    Orleans学习总结(六)--应用篇
    Orleans学习总结(四)--集群配置篇
  • 原文地址:https://www.cnblogs.com/yunxiaguo/p/5610613.html
Copyright © 2011-2022 走看看