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}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0|1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(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 = @"^(^0\d{2}-?\d{8}$)|(^0\d{3}-?\d{7}$)|(^\(0\d{2}\)-?\d{8}$)|(^\(0\d{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]))$";

最新文章

  1. R语言归一化处理
  2. STRUTS2 常用标签的使用
  3. oracle数据库常用SQL语句
  4. XMPP——Smack[5]文件传输及离线消息的获取
  5. acid数据库事务正确执行的四个基本要素的缩写编辑本义项
  6. Linux网络设备驱动架構學習(三)
  7. 蓝桥杯之FBI树问题
  8. R语言数据框行转列实例
  9. PHP实现简单的评论与回复功能还有删除信息
  10. JAVA - 深入JAVA 虚拟机 2
  11. 探索JSP中的 "9大内置对象!"
  12. js 第一课
  13. BZOJ 3168: [Heoi2013]钙铁锌硒维生素 [线性基 Hungary 矩阵求逆]
  14. mysql存储过程游标使用
  15. windows下安装bpython方法 (新)
  16. EffectiveC++ 第2章 构造/析构/赋值运算
  17. 爬虫2 urllib用法
  18. Oracle性能优化5-索引的不足
  19. Android逆向 APK文件组成
  20. 用ElasticSearch存储日志

热门文章

  1. Python常用模块的安装方法
  2. mysql 中的外键key值的详解
  3. css优先级判断
  4. Shell字符串使用十进制转换
  5. Red5源代码分析 - 关键类及其初始化过程
  6. 当心回车符破坏你的JSON数据
  7. CAAnimation解读
  8. Codeforces Round #349 (Div. 2) D. World Tour (最短路)
  9. UVaLive 7374 Racing Gems (DP,LIS)
  10. F - Coins