四时宝库

程序员的知识宝库

使用正则表达式验证一个月的31天-C#学习进阶

实例说明

一年有365天,分为12个月,每个月最多有31天,实例中使用了正则表达式,验证用户输入的每个月的天数是否正确,如果用户输入的天数小于1或大于31,则弹出消息对话框,提示输入天数不正确。实例运行效果如图所示。

关键技术

本实例重点在于向读者介绍怎样使用正则表达式验证一个月的31天,下面对其进行详细讲解。

实例中主要用到了Regex类的IsMatch方法,此方法的使用已经在实例“使用正则表达式验证电话号码”中进行了详细讲解。下面对实例中使用的正则表达式进行详细讲解。


从图2中可以看到,详细的描述了"^((0?[1-9])|((1|2)[0-9])|30|31)#34;正则表达式,其中0?表示匹配零个或1个“0”;[1-9]表示匹配数字1至9;(1|2)表示匹配数字1或2;|30|31表示匹配数字30或31。

设计过程

(1)打开Visual Studio 2022开发环境,新建一个Windows窗体应用程序,命名为ValidateDay。

(2)更改默认窗体Form1的Name属性为Frm_Main,向窗体中添加一个TextBox控件,用于输入日期信息;添加一个Button按钮,用于验证日期信息。

(3)程序主要代码如下:

public bool IsDay(string str_day)

{

    return System.Text.RegularExpressions.Regex.                                                                  //使用正则表达式判断是否匹配

        IsMatch(str_day, @"^((0?[1-9])|((1|2)[0-9])|30|31)#34;);

}

正则表达式中“?”限定符用于限定指定的字符出现0次或1次。

^abc?$

上面的正则表达式可以匹配字符串“abc”和“ab”。表达式c?表示字母c可以出现1次或者不出现。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接