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 <
分享到:
相关推荐
这款"C#正则表达示练习器"是一个专门针对C#正则表达式的练习工具,对于初学者来说,这是一个很好的实践平台,能够帮助快速理解和掌握正则表达式的用法。 正则表达式的基础概念: 1. **元字符**:如`.`代表任意字符...
在C#编程语言中,正则表达式被广泛应用于数据验证、文本提取、格式转换等多个场景。本项目提供了一个C#编写的正则表达式测试工具,包含完整的源代码,可以帮助开发者调试和测试他们的正则表达式,支持查找和替换功能...
C#正则表达式是.NET框架中用于处理字符串模式匹配的强大工具。它是通过System.Text.RegularExpressions命名空间中的Regex类实现的。本快速入门将带你走进C#正则表达式的精彩世界,帮助你理解和掌握这一核心技能。 ...
本项目提供的“正则表达式验证器”包含源代码,可以帮助开发者在工作中快速验证正则表达式的正确性,同时为学习C#中的正则表达式提供了实践平台。 首先,我们来看正则表达式的基本结构和语法。正则表达式由一系列...
以下是一些常见的C#正则表达式模式及其用途: 1. **只能输入数字**:`^[0-9]*$` - 匹配任何非空的数字序列。 2. **只能输入n位的数字**:`^\d{n}$` - 匹配精确n位的数字,例如`^\d{3}$`将匹配3位数字。 3. **只能...
C#的字符串和正则表达式结合使用,可以解决许多复杂的文本处理问题,如验证用户输入、数据清洗、文本分析等。在实际开发中,熟练掌握这两部分知识,不仅能提高代码的效率,还能大大增强解决问题的能力。QT38-C#字符...
C#中的正则表达式支持丰富的元字符和预定义字符类,如`.`代表任意字符,`\d`代表数字,`\w`代表字母或数字等。此外,还可以使用`(?)`创建捕获组,便于后续处理。 Java中,正则表达式的操作主要通过`java.util.regex...
正则表达式在日常开发中的应用场景广泛,如验证用户输入(邮箱、电话号码格式)、搜索和替换文本、爬虫数据提取等。掌握正则表达式不仅可以提高工作效率,也是成为一名优秀程序员的重要技能之一。 通过使用...
由于某些字符类非常常用,所以JavaScript的正则表达式语法包含一些特殊字符和转义序列来表示这些常用的类.例如, \s 匹配的是空格符,制表符和其它空白符, \s 匹配的则是空白符之外的任何字符. 正则表灰式的字符类 ...
2. **C#正则表达示练习器.exe**:这是可执行文件,表示这个项目是一个已编译的应用程序,可以直接运行在支持.NET环境的Windows系统上。用户可以使用这个程序来实践和学习正则表达式。 3. **Regulation.XML**:这可能...
废话不多说了,直接给大家贴代码了,具体代码如下所示: using System; using System.Collections.Generic;...namespace 正则表达01 { /// /// 表达是否是字符是不是中文 /// class Program { /// /// 在
正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。在这个“常用正则表达式集合”中,你可能会找到许多实用的模板,帮助你在处理字符串时...
- **了解正则表达式能做什么:** 正则表达式可以用于文本搜索、替换、验证等场景。 - **熟悉基本语法:** 包括元字符、重复、分组等概念。 - **学会如何使用正则表达式:** 在不同的编程语言中应用正则表达式的具体...
### 正则表达式小结:C# 中的高级匹配规则 ...正则表达式的强大之处在于其灵活性和表达能力,掌握了以上基本和高级用法后,开发者可以更高效地处理各种文本数据,实现自动化和精确的数据清洗、分析和验证。
正则表达式在各种编程语言中都有实现,如JavaScript、Python、Java、C#等。它们提供了内置的函数或模块来处理正则表达式,如JavaScript的`match()`、`search()`、`replace()`和`split()`方法,Python的`re`模块。 ...
正则表达式作为一个强大的工具,在处理文本和数据时拥有极高的效率和灵活性,被广泛应用于多种编程语言和流行工具中,比如Perl、Python、Ruby、Java、***、C#(以及任何使用.NET框架的语言)、PHP和MySQL。...