C# - 将 Regex 与 TextBox.Validating 结合使用

标签 c# .net windows

而不是使用 if (numberEntered < 1 || numberEntered > 24),是否可以使用正则表达式来检查字段是否为 24 小时制格式,例如23:00。

private void textBox4_Validating(object sender, CancelEventArgs e)
{
    {
        int numberEntered;

        if (int.TryParse(textBox4.Text, out numberEntered))
        {
            if (numberEntered < 1 || numberEntered > 28)
            {
                MessageBox.Show("You have to enter a number between 1 and 28");
                textBox4.Text = 5.ToString();
            }
        }
        else
        {
            MessageBox.Show("You need to enter an integer (number)");
            textBox4.Text = 5.ToString();
        }
    }

最佳答案

string time = "23:00";
var time24 = new Regex(@"^(20|21|22|23|[01]\d|\d)(([:][0-5]\d){1,2})$");
bool is24hTime = time24.IsMatch(time);

可能可行,但我认为 DateTime.TryParse是要走的路。

关于C# - 将 Regex 与 TextBox.Validating 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6405178/

相关文章:

c# - 如何在不在 WPF 中创建新的 RotateTransform 的情况下在另一个线程中旋转矩形?

c# - 我如何在类型安全的枚举模式上使用 switch 语句

C#同步进程启动

.net - 使用反射查找所有公共(public)虚拟方法并提供覆盖

c# - 在 C# 中读写 cXML 文档的最佳方式是什么?

c# - Irony 解析器中的表达式优先级

c# - 为什么此代码不产生撕裂读取?

c++ - 导入库如何工作以及为什么 MinGW 不需要它们?

java - 如何将 FTP 链接复制到 Windows 系统剪贴板?

windows - 无法在可执行目录或任何父目录中找到 jenkins.xml 文件