这是
很早以前写的一个正则表达式验证工具类,包含了一些常见的校验和支持自定义的正则表达式匹配,可以选择完全匹配,也可以获取所有匹配项。曾用它仿造Eclispe下的正则表达式插件写过一个工具。因为最近突然有几个朋友都在问这方面的问题,干脆就把代码贴出来好了。
- using System;
- using System.Collections;
- using System.Text.RegularExpressions;
- namespace Xrinehart.Framework.Common.Validate
- {
- /// <summary>
-
-
- public class RegularMatch
- {
- private string _String;
- private bool _IsEntirety;
- /// <summary>
-
-
- 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
- };
- public RegularMatch() { }
- 用于判断字符串是否是对应类型(默认为包含匹配)#region 用于判断字符串是否是对应类型(默认为包含匹配)
- public bool IsAccordType(string strVerifyString, Operation op)
- {
- return IsAccordType(strVerifyString, op, false);
- }
- #endregion
- 用于判断字符串是否是对应类型(或是否包含对应类型的字符)#region 用于判断字符串是否是对应类型(或是否包含对应类型的字符)
- /// <summary>
-
-
-
-
-
-
- public bool IsAccordType(string strVerifyString, Operation op, bool IsEntirety)
- {
- _String = strVerifyString;
- _IsEntirety = IsEntirety;
- 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;
- }
- }
- }
- #endregion
- 具体验证方法#region 具体验证方法
- 是否Byte类型(8 位的无符号整数): 0 和 255 之间的无符号整数#region 是否Byte类型(8 位的无符号整数): 0 和 255 之间的无符号整数
- /// <summary>
-
-
-
- protected bool IsByte()
- {
- try
- {
- Byte.Parse(_String);
- }
- catch
- {
- return false;
- }
- return true;
- }
- #endregion
- 是否SByte类型(8 位的有符号整数): -128 到 +127 之间的整数#region 是否SByte类型(8 位的有符号整数): -128 到 +127 之间的整数
- /// <summary>
-
-
-
- protected bool IsSByte()
- {
- try
- {
- SByte.Parse(_String);
- }
- catch
- {
- return false;
- }
- return true;
- }
- #endregion
- 是否Int16类型(16 位的有符号整数): -32768 到 +32767 之间的有符号整数#region 是否Int16类型(16 位的有符号整数): -32768 到 +32767 之间的有符号整数
- /// <summary>
-
-
-
- protected bool IsInt16()
- {
- try
- {
- Int16.Parse(_String);
- }
- catch
- {
- return false;
- }
- return true;
- }
- #endregion
- 是否Int32类型(32 位的有符号整数):-2,147,483,648 到 +2,147,483,647 之间的有符号整数#region 是否Int32类型(32 位的有符号整数):-2,147,483,648 到 +2,147,483,647 之间的有符号整数
- /// <summary>
-
-
-
- protected bool IsInt32()
- {
- try
- {
- Int32.Parse(_String);
- }
- catch
- {
- return false;
- }
- return true;
- }
- #endregion
- 是否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>
-
-
-
- protected bool IsInt64()
- {
- try
- {
- Int64.Parse(_String);
- }
- catch
- {
- return false;
- }
- return true;
- }
- #endregion
- 是否Single类型(单精度(32 位)浮点数字): -3.402823e38 和 +3.402823e38 之间的单精度 32 位数字#region 是否Single类型(单精度(32 位)浮点数字): -3.402823e38 和 +3.402823e38 之间的单精度 32 位数字
- /// <summary>
-
-
-
- protected bool IsSingle()
- {
- try
- {
- Single.Parse(_String);
- }
- catch
- {
- return false;
- }
- return true;
- }
- #endregion
- 是否Double类型(单精度(64 位)浮点数字): -1.79769313486232e308 和 +1.79769313486232e308 之间的双精度 64 位数字#region 是否Double类型(单精度(64 位)浮点数字): -1.79769313486232e308 和 +1.79769313486232e308 之间的双精度 64 位数字
- /// <summary>
-
-
-
- protected bool IsDouble()
- {
- try
- {
- Double.Parse(_String);
- }
- catch
- {
- return false;
- }
- return true;
- }
- #endregion
- 是否Boolean类型(布尔值):true 或 false#region 是否Boolean类型(布尔值):true 或 false
- /// <summary>
-
-
-
- protected bool IsBoolean()
- {
- try
- {
- Boolean.Parse(_String);
- }
- catch
- {
- return false;
- }
- return true;
- }
- #endregion
- 是否Char类型(Unicode(16 位)字符):该 16 位数字的值范围为从十六进制值 0x0000 到 0xFFFF#region 是否Char类型(Unicode(16 位)字符):该 16 位数字的值范围为从十六进制值 0x0000 到 0xFFFF
- /// <summary>
-
-
-
- protected bool IsChar()
- {
- try
- {
- Char.Parse(_String);
- }
- catch
- {
- return false;
- }
- return true;
- }
- #endregion
- 是否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>
-
-
-
- protected bool IsDecimal()
- {
- try
- {
- Decimal.Parse(_String);
- }
- catch
- {
- return false;
- }
- return true;
- }
- #endregion
- 是否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>
-
-
-
- protected bool IsDateTime()
- {
- try
- {
- DateTime.Parse(_String);
- }
- catch
- {
- return false;
- }
- return true;
- }
- #endregion
- 是否Date类型(表示时间的日期部分): 范围在公元(基督纪元)0001 年 1 月 1 日 到公元 (C.E.) 9999 年 12 月 31 日之间的日期#region 是否Date类型(表示时间的日期部分): 范围在公元(基督纪元)0001 年 1 月 1 日 到公元 (C.E.) 9999 年 12 月 31 日之间的日期
- /// <summary>
-
-
-
- protected bool IsDate()
- {
- DateTime Value;
- try
- {
- Value = DateTime.Parse(_String);
- }
- catch
- {
- return false;
- }
- if (Value.Date.ToString() == _String)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- #endregion
- 是否Time类型(表示时间部分HHMMSS): 范围在夜 12:00:00 到晚上 11:59:59 之间的时间#region 是否Time类型(表示时间部分HHMMSS): 范围在夜 12:00:00 到晚上 11:59:59 之间的时间
- &
分享到:
相关推荐
例如,要验证一个邮箱地址的格式,我们可以编写一个简单的正则表达式: ```csharp string emailRegex = @"^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"; bool isValidEmail = Regex.IsMatch(input, emailRegex...
本软件是一个用Java编写的正则表达式验证器,它的主要功能是帮助用户验证自定义的正则表达式是否能够正确匹配指定的字符串。 这个验证器分为两个输入框:第一个输入框用于输入正则表达式,用户可以在这里编写自己的...
- 在Java项目中,通常会封装一个工具类,集合常用的正则表达式和验证方法,方便复用。 - 这样的工具类可能包含方法如:`isEmail(String input)`验证邮箱格式,`isPhone(String input)`验证手机号码格式,`isIDCard...
在“注册邮箱验证、手机号验证等正则表达验证”这个主题中,我们将探讨如何使用正则表达式来验证用户的邮箱地址和手机号码。 1. 邮箱验证: 邮箱地址通常由用户名、@符号、域名和顶级域组成。一个基本的邮箱正则...
### js正则表达页面验证知识点详解 #### 一、引言 在Web开发过程中,为了确保数据的有效性和安全性,前端表单验证变得尤为重要。通过JavaScript(简称JS)结合正则表达式进行表单验证是一种常见且高效的方式。本文...
正则表达式验证工具类,满足大众开发者验证需求,已封装且一句话即可验证,主要包括: /** * 1.用户名 - 2.密码 (英文、数字都可,且不包含特殊字符 */ (BOOL)validateStrWithRange:(NSString *)range str:...
在“正则表达式验证器”项目中,源代码很可能是围绕这些方法构建的,提供了一个用户界面,允许用户输入正则表达式和测试字符串,然后显示匹配结果。通过这个工具,开发者可以快速测试正则表达式的正确性,避免在实际...
这个正则表达式确保字符串只包含这些字符,并且至少有一个字符。 5. 匹配一个 Email:`/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/ 这个正则表达式用于验证电子邮件地址的格式。它包括用户名部分(允许字母...
正则表达式验证器,可以验证你的表达正确与否,更快更方便你写好正则表达式!
该模式可以匹配任意一个中文字符。`[\u4e00-\u9fa5]` 表示 Unicode 范围内的中文字符。 #### 匹配全角字符 ```regex [^\x00-\xff] ``` 此模式用来匹配非半角字符,即全角字符或特殊字符等。`\x00-\xff` 包含了 ...
验证一个字符串是否仅由字母和数字组成的正则表达式为:`/^[a-zA-Z0-9]*$/`。 10. 检验18位身份证号码: 身份证号码一般为18位,前6位是地区代码,接下来的8位是出生日期码,然后是3位顺序码,最后一位是校验码。...
- **元字符**:在正则表达式中,有一些特殊字符,如`.`(匹配任意字符,除了换行符)、`*`(匹配前一个字符0次或无限次)等,它们被称为元字符。 - **量词**:量词用于指定匹配次数,例如`+`(匹配1次或无限次)、...
以上介绍了多个常用的正则表达式函数及其具体实现方式,它们可以帮助开发者在实际项目中高效地完成各种数据验证任务。通过合理运用这些函数,可以极大地提高前端表单的用户体验,同时减少因输入错误而导致的后端...
"正则表达生成工具"正是为了解决手动构造正则表达式困难而设计的一款实用软件,它可以自动生成常见的正则表达式模式,极大地提高了工作效率。 首先,让我们深入了解一下正则表达式的概念。正则表达式由一系列字符和...
描述中提到的"最全最实用的正则验证插件,含调用示例"可能指的是一个JavaScript库或者工具,它提供了预设的正则表达式模式,并且包含了如何在实际项目中调用和应用这些规则的示例代码。例如,`vstorly.js`可能是这个...
- 此示例中,我们使用了一个较为简单的正则表达式来匹配日期。该表达式`(\d{4})[-/.](\d{2})[-/.](\d{2})`用于匹配标准的日期格式,包括年、月、日,并且允许使用破折号、斜杠或点作为分隔符。 - 使用`Matcher`对象...
标题:正则表达验证 描述:常用的正则表达式,对于页面的限制输入减少很多的编码工作。 在网页开发中,正则表达式是处理文本数据的重要工具之一,尤其是在表单验证方面,它能帮助开发者高效地控制用户输入的数据...