C# 正则表达验证类

1 using System;  
  2 using System.Collections;  
  3 using System.Text.RegularExpressions;  
  4 
  5 namespace Xrinehart.Framework.Common.Validate  
  6 {  
  7     /**//// <summary>  
  8     /// RegularMatch 的摘要说明。  
  9     /// </summary>      
 10     public class RegularMatch  
 11     {  
 12         private string _String;  
 13         private bool _IsEntirety;  
 14 
 15         /**//// <summary>  
 16         /// 可以进行判断的类型  
 17         /// </summary>  
 18         public enum Operation  
 19         {  
 20             Byte, SByte, Int16, Int32, Int64, Single, Double, Boolean, Char, Decimal, DateTime, Date, Time,  
 21             EMail, URL, ChinaPhone, ChineseWord, ChinesePostalCode, Number, StringModel_01, StringModel_02, WideWord, NarrowWord, IPAddress,  
 22             ChineseMobile, ChineseID  
 23         };  
 24 
 25         public RegularMatch() { }  
 26 
 27         用于判断字符串是否是对应类型(默认为包含匹配)#region 用于判断字符串是否是对应类型(默认为包含匹配)  
 28         public bool IsAccordType(string strVerifyString, Operation op)  
 29         {  
 30             return IsAccordType(strVerifyString, op, false);  
 31         }  
 32         #endregion  
 33 
 34         用于判断字符串是否是对应类型(或是否包含对应类型的字符)#region 用于判断字符串是否是对应类型(或是否包含对应类型的字符)  
 35         /**//// <summary>  
 36         /// 用于判断字符串是否是对应类型  
 37         /// </summary>  
 38         /// <param name="strVerifyString">String,需要判断的字符串</param>  
 39         /// <param name="op">Operation枚举,用于选择需要进行的操作</param>  
 40         /// <param name="IsEntirety">Boolean,判断是完全匹配还是包含匹配模式(仅适用于非类型判断时)</param>  
 41         /// <returns></returns>  
 42         public bool IsAccordType(string strVerifyString, Operation op, bool IsEntirety)  
 43         {  
 44             _String = strVerifyString;  
 45             _IsEntirety = IsEntirety;  
 46 
 47             switch (op)  
 48             {  
 49                 case Operation.Byte:  
 50                     {  
 51                         return IsByte();  
 52                     }  
 53                 case Operation.SByte:  
 54                     {  
 55                         return IsSByte();  
 56                     }  
 57                 case Operation.Int16:  
 58                     {  
 59                         return IsInt16();  
 60                     }  
 61                 case Operation.Int32:  
 62                     {  
 63                         return IsInt32();  
 64                     }  
 65                 case Operation.Int64:  
 66                     {  
 67                         return IsInt64();  
 68                     }  
 69                 case Operation.Single:  
 70                     {  
 71                         return IsSingle();  
 72                     }  
 73                 case Operation.Double:  
 74                     {  
 75                         return IsDouble();  
 76                     }  
 77                 case Operation.Boolean:  
 78                     {  
 79                         return IsBoolean();  
 80                     }  
 81                 case Operation.Char:  
 82                     {  
 83                         return IsChar();  
 84                     }  
 85                 case Operation.Decimal:  
 86                     {  
 87                         return IsDecimal();  
 88                     }  
 89                 case Operation.DateTime:  
 90                     {  
 91                         return IsDateTime();  
 92                     }  
 93                 case Operation.Date:  
 94                     {  
 95                         return IsDate();  
 96                     }  
 97                 case Operation.Time:  
 98                     {  
 99                         return IsTime();  
100                     }  
101                 case Operation.IPAddress:  
102                     {  
103                         return IsIPAddress();  
104                     }  
105                 case Operation.ChinaPhone:  
106                     {  
107                         return IsChinaPhone();  
108                     }  
109                 case Operation.ChinesePostalCode:  
110                     {  
111                         return IsChinesePostalCode();  
112                     }  
113                 case Operation.ChineseMobile:  
114                     {  
115                         return IsChineseMobile();  
116                     }  
117                 case Operation.EMail:  
118                     {  
119                         return IsEmail();  
120                     }  
121                 case Operation.URL:  
122                     {  
123                         return IsURL();  
124                     }  
125                 case Operation.ChineseWord:  
126                     {  
127                         return IsChineseWord();  
128                     }  
129                 case Operation.Number:  
130                     {  
131                         return IsNumber();  
132                     }  
133                 case Operation.StringModel_01:  
134                     {  
135                         return IsStringModel_01();  
136                     }  
137                 case Operation.StringModel_02:  
138                     {  
139                         return IsStringModel_02();  
140                     }  
141                 case Operation.WideWord:  
142                     {  
143                         return IsWideWord();  
144                     }  
145                 case Operation.NarrowWord:  
146                     {  
147                         return IsNarrowWord();  
148                     }  
149                 case Operation.ChineseID:  
150                     {  
151                         return IsChineseID();  
152                     }  
153                 default:  
154                     {  
155                         return false;  
156                     }  
157             }  
158         }  
159         #endregion  
160 
161         具体验证方法#region 具体验证方法  
162 
163         是否Byte类型(8 位的无符号整数): 0 和 255 之间的无符号整数#region 是否Byte类型(8 位的无符号整数): 0 和 255 之间的无符号整数  
164         /**//// <summary>  
165         /// 是否Byte类型(8 位的无符号整数): 0 和 255 之间的无符号整数  
166         /// </summary>  
167         /// <returns>Boolean</returns>  
168         protected bool IsByte()  
169         {  
170             try  
171             {  
172                 Byte.Parse(_String);  
173             }  
174             catch  
175             {  
176                 return false;  
177             }  
178             return true;  
179         }  
180         #endregion  
181 
182         是否SByte类型(8 位的有符号整数): -128 到 +127 之间的整数#region 是否SByte类型(8 位的有符号整数): -128 到 +127 之间的整数  
183         /**//// <summary>  
184         /// 是否SByte类型(8 位的有符号整数): -128 到 +127 之间的整数  
185         /// </summary>  
186         /// <returns>Boolean</returns>  
187         protected bool IsSByte()  
188         {  
189             try  
190             {  
191                 SByte.Parse(_String);  
192             }  
193             catch  
194             {  
195                 return false;  
196             }  
197             return true;  
198         }  
199         #endregion  
200 
201         是否Int16类型(16 位的有符号整数): -32768 到 +32767 之间的有符号整数#region 是否Int16类型(16 位的有符号整数): -32768 到 +32767 之间的有符号整数  
202         /**//// <summary>  
203         /// 是否Int16类型(16 位的有符号整数): -32768 到 +32767 之间的有符号整数  
204         /// </summary>  
205         /// <returns>Boolean</returns>  
206         protected bool IsInt16()  
207         {  
208             try  
209             {  
210                 Int16.Parse(_String);  
211             }  
212             catch  
213             {  
214                 return false;  
215             }  
216             return true;  
217         }  
218         #endregion  
219 
220         是否Int32类型(32 位的有符号整数):-2,147,483,648 到 +2,147,483,647 之间的有符号整数#region 是否Int32类型(32 位的有符号整数):-2,147,483,648 到 +2,147,483,647 之间的有符号整数  
221         /**//// <summary>  
222         /// 是否Int32类型(32 位的有符号整数):-2,147,483,648 到 +2,147,483,647 之间的有符号整数  
223         /// </summary>  
224         /// <returns>Boolean</returns>  
225         protected bool IsInt32()  
226         {  
227             try  
228             {  
229                 Int32.Parse(_String);  
230             }  
231             catch  
232             {  
233                 return false;  
234             }  
235             return true;  
236         }  
237         #endregion  
238 
239         是否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 之间的整数  
240         /**//// <summary>  
241         /// 是否Int64类型(64 位的有符号整数): -9,223,372,036,854,775,808 到 +9,223,372,036,854,775,807 之间的整数  
242         /// </summary>  
243         /// <returns>Boolean</returns>  
244         protected bool IsInt64()  
245         {  
246             try  
247             {  
248                 Int64.Parse(_String);  
249             }  
250             catch  
251             {  
252                 return false;  
253             }  
254             return true;  
255         }  
256         #endregion  
257 
258         是否Single类型(单精度(32 位)浮点数字): -3.402823e38 和 +3.402823e38 之间的单精度 32 位数字#region 是否Single类型(单精度(32 位)浮点数字): -3.402823e38 和 +3.402823e38 之间的单精度 32 位数字  
259         /**//// <summary>  
260         /// 是否Single类型(单精度(32 位)浮点数字): -3.402823e38 和 +3.402823e38 之间的单精度 32 位数字  
261         /// </summary>  
262         /// <returns>Boolean</returns>  
263         protected bool IsSingle()  
264         {  
265             try  
266             {  
267                 Single.Parse(_String);  
268             }  
269             catch  
270             {  
271                 return false;  
272             }  
273             return true;  
274         }  
275         #endregion  
276 
277         是否Double类型(单精度(64 位)浮点数字): -1.79769313486232e308 和 +1.79769313486232e308 之间的双精度 64 位数字#region 是否Double类型(单精度(64 位)浮点数字): -1.79769313486232e308 和 +1.79769313486232e308 之间的双精度 64 位数字  
278         /**//// <summary>  
279         /// 是否Double类型(单精度(64 位)浮点数字): -1.79769313486232e308 和 +1.79769313486232e308 之间的双精度 64 位数字  
280         /// </summary>  
281         /// <returns>Boolean</returns>  
282         protected bool IsDouble()  
283         {  
284             try  
285             {  
286                 Double.Parse(_String);  
287             }  
288             catch  
289             {  
290                 return false;  
291             }  
292             return true;  
293         }  
294         #endregion  
295 
296         是否Boolean类型(布尔值):true 或 false#region 是否Boolean类型(布尔值):true 或 false  
297         /**//// <summary>  
298         /// 是否Double类型(单精度(64 位)浮点数字): -1.79769313486232e308 和 +1.79769313486232e308 之间的双精度 64 位数字  
299         /// </summary>  
300         /// <returns>Boolean</returns>  
301         protected bool IsBoolean()  
302         {  
303             try  
304             {  
305                 Boolean.Parse(_String);  
306             }  
307             catch  
308             {  
309 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值