C# 中的字符串正则验证函数示例
本文档主要介绍了在C#编程语言中如何使用字符串正则表达式进行验证的功能。首先,我们关注的是对输入字符串是否为有效IP地址的检查。`IsIPStr`方法通过`IPAddress.TryParse`函数尝试将输入的字符串转换为`IPAddress`对象,如果转换成功,说明输入是合法的IP地址。这涉及到正则表达式的应用,尽管文档中没有明确给出正则表达式模式,但可以推测该方法会检查IP地址的常见格式,如"xxx.xxx.xxx.xxx"或"xxx.x/yy"。 接下来,文档提供了两个方法来判断字符串是否为数字:`IsNumber`。这个方法通过创建多个正则表达式来进行匹配: 1. `objNotNumberPattern`:用于匹配非数字字符,包括除0-9和小数点(-)之外的任何字符。 2. `objTwoDotPattern`:匹配连续的两个或多个小数点,表示无效的数字格式。 3. `objTwoMinusPattern`:匹配连续的两个或更多的减号,同样用于无效数字格式。 4. `objNumberPattern`:组合了`strValidRealPattern`(匹配实数,可能包含负号、小数点或整数部分)和`strValidIntegerPattern`(匹配整数,可能包含负号或不带小数的数字)的正则表达式。 这个方法通过`IsMatch`方法逐一排除这些不符合数字格式的字符串,并确保至少有一个正则表达式匹配,以确定输入是有效的数字。这种方法可以检测到浮点数、整数以及负数等基本数字形式。 最后一个方法`IsDateStr`,虽然在提供的部分内容中没有显示,但根据标题推测,它可能是用来检查字符串是否符合日期格式。C#中的日期验证通常使用`DateTime.TryParse`或者自定义正则表达式来匹配特定的日期模式,如"yyyy-MM-dd"、"MM/dd/yyyy"等。这部分内容可能会涉及到相似的正则表达式设计,比如匹配四位年份、两位月份和两位日期的组合。 总结来说,本文档主要展示了在C#中如何使用字符串正则表达式进行IP地址、数字和日期格式的验证,通过创建和使用多个正则表达式来确保输入数据的合法性。对于开发人员在处理用户输入或格式校验时,这是一种常用且灵活的工具。
public class GF_IsOk
{
/// <summary>
/// 判读是否是IP地址
/// </summary>
/// <param name="in_str"></param>
/// <returns></returns>
public static bool IsIPStr(string in_str)
{
IPAddress ip;
return IPAddress.TryParse(in_str, out ip);
}
/// <summary>
/// 判断是否是数字
/// </summary>
/// <param name="strNumber"></param>
/// <returns></returns>
public static bool IsNumber(string strNumber)
{
Regex objNotNumberPattern = new Regex("[^0-9.-]");
Regex objTwoDotPattern = new Regex("[0-9]*[.][0-9]*[.][0-9]*");
Regex objTwoMinusPattern = new Regex("[0-9]*[-][0-9]*[-][0-9]*");
String strValidRealPattern = "^([-]|[.]|[-.]|[0-9])[0-9]*[.]*[0-9]+$";
String strValidIntegerPattern = "^([-]|[0-9])[0-9]*$";
Regex objNumberPattern = new Regex("(" + strValidRealPattern + ")|(" + strValidIntegerPattern + ")");
return !objNotNumberPattern.IsMatch(strNumber) &&
!objTwoDotPattern.IsMatch(strNumber) &&
objNumberPattern.IsMatch(strNumber);
}
/// <summary>
/// 判断是否是日期字符串
/// </summary>
/// <param name="in_str"></param>
/// <returns></returns>
public static bool IsDateStr_yyyymmdd(string in_str)
{
if (in_str == "") return true;
if (in_str.Length != 8) return false;
return IsDateStr(in_str);
}
/// <summary>
/// 判断是否是日期字符串
/// </summary>
/// <param name="in_str"></param>
/// <returns></returns>
public static bool IsDateStr(string in_str)
{
if (in_str == "") return true;
if (in_str.Length == 8)
in_str = in_str.Substring(0, 4) + "-" + in_str.Substring(4, 2) + "-" + in_str.Substring(6, 2);
DateTime dtDate;
bool bValid = true;
try
{
剩余5页未读,继续阅读
- 粉丝: 2
- 资源: 47
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦