public class DataVerify
{
private static string ReInt = @"^[+-]?(?:/d+)";
private static string ReUInt = @"^[+]?(?:/d+)";
private static string ReDouble = @"^[+-]?(?:/d+(/./d*)?|/d*/./d+?)";
private static string ReDate = @"^(?:(?!0000)[0-9]{4}([-/.]?)(?:(?:0?[1-9]|1[0-2])/1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])/1(?:29|30)|(?:0?[13578]|1[02])/1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]?)0?2/2(?:29))";
private static string ReTime = @"^([0-9]|[0-1][0-9]|[2][0-3]):([0-9]|[0-5][0-9])(:([0-9]|[0-5][0-9]))?";
private static string EndFlag = @"/s*$";
public static bool RegexMatch(string input, string pattern)
{
if (input == null || input.Trim().Length == 0)
return false;
return System.Text.RegularExpressions.Regex.IsMatch(input, pattern);
}
public static bool IsDouble(string str)
{
return RegexMatch(str, ReDouble + EndFlag);
}
public static bool IsInt(string str)
{
return RegexMatch(str, ReInt + EndFlag);
}
public static bool IsUInt(string str)
{
return RegexMatch(str, ReUInt + EndFlag);
}
/// <summary>
/// 格式为yyyy-MM-dd HH:mm:ss 或yyyy-M-d H:m:s
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool IsDateTime(string str)
{
return RegexMatch(str, ReDate + @"/s+" + ReTime.Replace("^","") +EndFlag);
}
/// <summary>
/// 格式yyyy-MM-dd或yyyy-M-d,连字符可以没有或是“-”、“/”、“.”之一
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool IsDate(string str)
{
return RegexMatch(str, ReDate + EndFlag);
}
/// <summary>
/// 时间格式为HH:mm:ss 或H:m:s或HH:mm或H:m
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool IsTime(string str)
{
return RegexMatch(str, ReTime + EndFlag);
}
}
C# 正则表达式验证数据类型
最新推荐文章于 2023-01-13 21:00:00 发布