一个常用的正则表达验证类
这是風語·深蓝很早以前写的一个正则表达式验证工具类,包含了一些常见的校验和支持自定义的正则表达式匹配,可以选择完全匹配,也可以获取所有匹配项。曾用它仿造Eclispe下的正则表达式插件写过一个工具。因为最近突然有几个朋友都在问这方面的问题,干脆就把代码贴出来好了。
<div class="highlighter">
[*]using System;
[*]<span />using System.Collections;
[*]<span />using System.Text.RegularExpressions;
[*]<span />
[*]<span />namespace Xrinehart.Framework.Common.Validate
[*]{
[*] /**//// <summary>
[*] /// RegularMatch 的摘要说明。 <span />
[*] /// </summary> <span />
[*] public class RegularMatch
[*] {
[*] private string _String;
[*] private bool _IsEntirety;
[*]<span />
[*] /**//// <summary>
[*] /// 可以进行判断的类型 <span />
[*] /// </summary> <span />
[*] public enum Operation
[*] {
[*] Byte, SByte, Int16, Int32, Int64, Single, Double, Boolean, Char, Decimal, DateTime, Date, Time,
[*] EMail, URL, ChinaPhone, ChineseWord, ChinesePostalCode, Number, StringModel_01, StringModel_02, WideWord, NarrowWord, IPAddress,
[*] ChineseMobile, ChineseID
[*] };
[*]<span />
[*] public RegularMatch() { }
[*]<span />
[*] 用于判断字符串是否是对应类型(默认为包含匹配)#region 用于判断字符串是否是对应类型(默认为包含匹配)
[*] public bool IsAccordType(string strVerifyString, Operation op)
[*] {
[*] return IsAccordType(strVerifyString, op, false);
[*] } <span class="preprocessor" />
[*] #endregion <span />
[*]<span />
[*] 用于判断字符串是否是对应类型(或是否包含对应类型的字符)#region 用于判断字符串是否是对应类型(或是否包含对应类型的字符)
[*] /**//// <summary>
[*] /// 用于判断字符串是否是对应类型 <span />
[*] /// </summary> <span />
[*] /// <param name="strVerifyString">String,需要判断的字符串</param> <span />
[*] /// <param name="op">Operation枚举,用于选择需要进行的操作</param> <span />
[*] /// <param name="IsEntirety">Boolean,判断是完全匹配还是包含匹配模式(仅适用于非类型判断时)</param> <span />
[*] /// <returns></returns> <span />
[*] public bool IsAccordType(string strVerifyString, Operation op, bool IsEntirety)
[*] {
[*] _String = strVerifyString;
[*] _IsEntirety = IsEntirety;
[*]<span />
[*] switch (op)
[*] {
[*] case Operation.Byte:
[*] {
[*] return IsByte();
[*] }
[*] case Operation.SByte:
[*] {
[*] return IsSByte();
[*] }
[*] case Operation.Int16:
[*] {
[*] return IsInt16();
[*] }
[*] case Operation.Int32:
[*] {
[*] return IsInt32();
[*] }
[*] case Operation.Int64:
[*] {
[*] return IsInt64();
[*] }
[*] case Operation.Single:
[*] {
[*] return IsSingle();
[*] }
[*] case Operation.Double:
[*] {
[*] return IsDouble();
[*] }
[*] case Operation.Boolean:
[*] {
[*] return IsBoolean();
[*] }
[*] case Operation.Char:
[*] {
[*] return IsChar();
[*] }
[*] case Operation.Decimal:
[*] {
[*] return IsDecimal();
[*] }
[*] case Operation.DateTime:
[*] {
[*] return IsDateTime();
[*] }
[*] case Operation.Date:
[*] {
[*] return IsDate();
[*] }
[*] case Operation.Time:
[*] {
[*] return IsTime();
[*] }
[*] case Operation.IPAddress:
[*] {
[*] return IsIPAddress();
[*] }
[*] case Operation.ChinaPhone:
[*] {
[*] return IsChinaPhone();
[*] }
[*] case Operation.ChinesePostalCode:
[*] {
[*] return IsChinesePostalCode();
[*] }
[*] case Operation.ChineseMobile:
[*] {
[*] return IsChineseMobile();
[*] }
[*] case Operation.EMail:
[*] {
[*] return IsEmail();
[*] }
[*] case Operation.URL:
[*] {
[*] return IsURL();
[*] }
[*] case Operation.ChineseWord:
[*] {
[*] return IsChineseWord();
[*] }
[*] case Operation.Number:
[*] {
[*] return IsNumber();
[*] }
[*] case Operation.StringModel_01:
[*] {
[*] return IsStringModel_01();
[*] }
[*] case Operation.StringModel_02:
[*] {
[*] return IsStringModel_02();
[*] }
[*] case Operation.WideWord:
[*] {
[*] return IsWideWord();
[*] }
[*] case Operation.NarrowWord:
[*] {
[*] return IsNarrowWord();
[*] }
[*] case Operation.ChineseID:
[*] {
[*] return IsChineseID();
[*] }
[*] default:
[*] {
[*] return false;
[*] }
[*] }
[*] } <span class="preprocessor" />
[*] #endregion <span />
[*]<span />
[*] 具体验证方法#region 具体验证方法
[*]<span />
[*] 是否Byte类型(8 位的无符号整数): 0 和 255 之间的无符号整数#region 是否Byte类型(8 位的无符号整数): 0 和 255 之间的无符号整数
[*] /**//// <summary>
[*] /// 是否Byte类型(8 位的无符号整数): 0 和 255 之间的无符号整数 <span />
[*] /// </summary> <span />
[*] /// <returns>Boolean</returns> <span />
[*] protected bool IsByte()
[*] {
[*] try<span />
[*] {
[*] Byte.Parse(_String);
[*] }
[*] catch<span />
[*] {
[*] return false;
[*] }
[*] return true;
[*] } <span class="preprocessor" />
[*] #endregion <span />
[*]<span />
[*] 是否SByte类型(8 位的有符号整数): -128 到 +127 之间的整数#region 是否SByte类型(8 位的有符号整数): -128 到 +127 之间的整数
[*] /**//// <summary>
[*] /// 是否SByte类型(8 位的有符号整数): -128 到 +127 之间的整数 <span />
[*] /// </summary> <span />
[*] /// <returns>Boolean</returns> <span />
[*] protected bool IsSByte()
[*] {
[*] try<span />
[*] {
[*] SByte.Parse(_String);
[*] }
[*] catch<span />
[*] {
[*] return false;
[*] }
[*] return true;
[*] } <span class="preprocessor" />
[*] #endregion <span />
[*]<span />
[*] 是否Int16类型(16 位的有符号整数): -32768 到 +32767 之间的有符号整数#region 是否Int16类型(16 位的有符号整数): -32768 到 +32767 之间的有符号整数
[*] /**//// <summary>
[*] /// 是否Int16类型(16 位的有符号整数): -32768 到 +32767 之间的有符号整数 <span />
[*] /// </summary> <span />
[*] /// <returns>Boolean</returns> <span />
[*] protected bool IsInt16()
[*] {
[*] try<span />
[*] {
[*] Int16.Parse(_String);
[*] }
[*] catch<span />
[*] {
[*] return false;
[*] }
[*] return true;
[*] } <span class="preprocessor" />
[*] #endregion <span />
[*]<span />
[*] 是否Int32类型(32 位的有符号整数):-2,147,483,648 到 +2,147,483,647 之间的有符号整数#region 是否Int32类型(32 位的有符号整数):-2,147,483,648 到 +2,147,483,647 之间的有符号整数
[*] /**//// <summary>
[*] /// 是否Int32类型(32 位的有符号整数):-2,147,483,648 到 +2,147,483,647 之间的有符号整数 <span />
[*] /// </summary> <span />
[*] /// <returns>Boolean</returns> <span />
[*] protected bool IsInt32()
[*] {
[*] try<span />
[*] {
[*] Int32.Parse(_String);
[*] }
[*] catch<span />
[*] {
[*] return false;
[*] }
[*] return true;
[*] } <span class="preprocessor" />
[*] #endregion <span />
[*]<span />
[*] 是否Int64类型(64 位的有符号整数): -9,223,372,036,854,775,808 到 +9,223,372,036,854,775,807 之间的整数#region 是否Int64类型(64 位的有符号整数): -9,223,372,036,854,775,808 到 +9,223,372,036,854,775,807 之间的整数
[*] /**//// <summary>
[*] /// 是否Int64类型(64 位的有符号整数): -9,223,372,036,854,775,808 到 +9,223,372,036,854,775,807 之间的整数 <span />
[*] /// </summary> <span />
[*] /// <returns>Boolean</returns> <span />
[*] protected bool IsInt64()
[*] {
[*] try<span />
[*] {
[*] Int64.Parse(_String);
[*] }
[*] catch<span />
[*] {
[*] return false;
[*] }
[*] return true;
[*] } <span class="preprocessor" />
[*] #endregion <span />
[*]<span />
[*] 是否Single类型(单精度(32 位)浮点数字): -3.402823e38 和 +3.402823e38 之间的单精度 32 位数字#region 是否Single类型(单精度(32 位)浮点数字): -3.402823e38 和 +3.402823e38 之间的单精度 32 位数字
[*] /**//// <summary>
[*] /// 是否Single类型(单精度(32 位)浮点数字): -3.402823e38 和 +3.402823e38 之间的单精度 32 位数字 <span />
[*] /// </summary> <span />
[*] /// <returns>Boolean</returns> <span />
[*] protected bool IsSingle()
[*] {
[*] try<span />
[*] {
[*] Single.Parse(_String);
[*] }
[*] catch<span />
[*] {
[*] return false;
[*] }
[*] return true;
[*] } <span class="preprocessor" />
[*] #endregion <span />
[*]<span />
[*] 是否Double类型(单精度(64 位)浮点数字): -1.79769313486232e308 和 +1.79769313486232e308 之间的双精度 64 位数字#region 是否Double类型(单精度(64 位)浮点数字): -1.79769313486232e308 和 +1.79769313486232e308 之间的双精度 64 位数字
[*] /**//// <summary>
[*] /// 是否Double类型(单精度(64 位)浮点数字): -1.79769313486232e308 和 +1.79769313486232e308 之间的双精度 64 位数字 <span />
[*] /// </summary> <span />
[*] /// <returns>Boolean</returns> <span />
[*] protected bool IsDouble()
[*] {
[*] try<span />
[*] {
[*] Double.Parse(_String);
[*] }
[*] catch<span />
[*] {
[*] return false;
[*] }
[*] return true;
[*] } <span class="preprocessor" />
[*] #endregion <span />
[*]<span />
[*] 是否Boolean类型(布尔值):true 或 false#region 是否Boolean类型(布尔值):true 或 false<span />
[*] /**//// <summary>
[*] /// 是否Double类型(单精度(64 位)浮点数字): -1.79769313486232e308 和 +1.79769313486232e308 之间的双精度 64 位数字 <span />
[*] /// </summary> <span />
[*] /// <returns>Boolean</returns> <span />
[*] protected bool IsBoolean()
[*] {
[*] try<span />
[*] {
[*] Boolean.Parse(_String);
[*] }
[*] catch<span />
[*] {
[*] return false;
[*] }
[*] return true;
[*] } <span class="preprocessor" />
[*] #endregion <span />
[*]<span />
[*] 是否Char类型(Unicode(16 位)字符):该 16 位数字的值范围为从十六进制值 0x0000 到 0xFFFF#region 是否Char类型(Unicode(16 位)字符):该 16 位数字的值范围为从十六进制值 0x0000 到 0xFFFF
[*] /**//// <summary>
[*] /// 是否Char类型(Unicode(16 位)字符):该 16 位数字的值范围为从十六进制值 0x0000 到 0xFFFF <span />
[*] /// </summary> <span />
[*] /// <returns>Boolean</returns> <span />
[*] protected bool IsChar()
[*] {
[*] try<span />
[*] {
[*] Char.Parse(_String);
[*] }
[*] catch<span />
[*] {
[*] return false;
[*] }
[*] return true;
[*] } <span class="preprocessor" />
[*] #endregion <span />
[*]<span />
[*] 是否Char类型(96 位十进制值):从正 79,228,162,514,264,337,593,543,950,335 到负 79,228,162,514,264,337,593,543,950,335 之间的十进制数#region 是否Char类型(96 位十进制值):从正 79,228,162,514,264,337,593,543,950,335 到负 79,228,162,514,264,337,593,543,950,335 之间的十进制数
[*] /**//// <summary>
[*] /// 是否Char类型(96 位十进制值):从正 79,228,162,514,264,337,593,543,950,335 到负 79,228,162,514,264,337,593,543,950,335 之间的十进制数 <span />
[*] /// </summary> <span />
[*] /// <returns>Boolean</returns> <span />
[*] protected bool IsDecimal()
[*] {
[*] try<span />
[*] {
[*] Decimal.Parse(_String);
[*] }
[*] catch<span />
[*] {
[*] return false;
[*] }
[*] return true;
[*] } <span class="preprocessor" />
[*] #endregion <span />
[*]<span />
[*] 是否DateTime类型(表示时间上的一刻): 范围在公元(基督纪元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之间的日期和时间#region 是否DateTime类型(表示时间上的一刻): 范围在公元(基督纪元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之间的日期和时间
[*] /**//// <summary>
[*] /// 是否DateTime类型(表示时间上的一刻): 范围在公元(基督纪元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之间的日期和时间 <span />
[*] /// </summary> <span />
[*] /// <returns>Boolean</returns> <span />
[*] protected bool IsDateTime()
[*] {
[*] try<span />
[*] {
[*] DateTime.Parse(_String);
[*] }
[*] catch<span />
[*] {
[*] return false;
[*] }
[*] return true;
[*] } <span class="preprocessor" />
[*] #endregion <span />
[*]<span />
[*] 是否Date类型(表示时间的日期部分): 范围在公元(基督纪元)0001 年 1 月 1 日 到公元 (C.E.) 9999 年 12 月 31 日之间的日期#region 是否Date类型(表示时间的日期部分): 范围在公元(基督纪元)0001 年 1 月 1 日 到公元 (C.E.) 9999 年 12 月 31 日之间的日期
[*] /**//// <summary>
[*] /// 是否Date类型(表示时间的日期部分): 范围在公元(基督纪元)0001 年 1 月 1 日 到公元 (C.E.) 9999 年 12 月 31 日之间的日期 <span />
[*] /// </summary> <span />
[*] /// <returns>Boolean</returns> <span />
[*] protected bool IsDate()
[*] {
[*] DateTime Value;
[*] try<span />
[*] {
[*] Value = DateTime.Parse(_String);
[*] }
[*] catch<span />
[*] {
[*] return false;
[*] }
[*] if (Value.Date.ToString() == _String)
[*] {
[*] return true;
[*] }
[*] else<span />
[*] {
[*] return false;
[*] }
[*] } <span class="preprocessor" />
[*] #endregion <span />
[*]<span />
[*] 是否Time类型(表示时间部分HHMMSS): 范围在夜 12:00:00 到晚上 11:59:59 之间的时间#region 是否Time类型(表示时间部分HHMMSS): 范围在夜 12:00:00 到晚上 11:59:59 之间的时间
[*] &
页:
[1]