Validation for hh:mm:ss

本文关键字:mm ss hh for Validation | 更新日期: 2023-09-27 18:12:11

我是c# .net的新手。我想要验证文本框只采取hh:mm:ss格式。下面是我的代码和它的工作。它给出的输出为true 23:45:45(仅限示例),对于-23:45:45(仅限示例)也为true。现在我想验证返回假-23:45:45(仅限示例),因为它是负时间。我的运行代码不工作负时间

          IsTrue = ValidateTime(txtTime.Text);
            if (!IsTrue)
            {
                strErrorMsg += "'nPlease insert valid alpha time in hh:mm:ss formats";
                isValidate = false;
            }
  public bool ValidateTime(string time)
    {
        try
        {
            Regex regExp = new Regex(@"(([0-1][0-9])|([2][0-3])):([0-5][0-9]):([0-5][0-9])");
            return regExp.IsMatch(time);
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

Validation for hh:mm:ss

我根本不会使用正则表达式—我只是尝试将结果解析为具有自定义格式的DateTime:

public bool ValidateTime(string time)
{
    DateTime ignored;
    return DateTime.TryParseExact(time, "HH:mm:ss",
                                  CultureInfo.InvariantCulture, 
                                  DateTimeStyles.None,
                                  out ignored);
}

(如果您真的想坚持使用正则表达式,请遵循mel的答案。我将摆脱毫无意义的try/catch块,并且可能只构造一次正则表达式并重用它。)

用^在开头和$在结尾包围你的正则表达式。这些标记了字符串的开始和结束,当存在任何其他字符时,将使匹配无效。