#region Regular Expression
/// <summary>
/// 校验字符串是否只包含字母与数字
/// </summary>
/// <param name="toVerified">需要校验的字符串</param>
/// <returns>true表示符合要求,false表示不符合要求</returns>
public static bool IsOnlyLetterAndDigit(string toVerified)
{
Regex rx = new Regex(@"^[a-zA-Z0-9-]*$");
return rx.IsMatch(toVerified.Trim(), 0);
}
/// <summary>
/// 检验是否是整数
/// </summary>
/// <param name="str">需要检验的字符串</param>
/// <returns>是否为整数:true是整数,false非整数</returns>
public static bool IsInt(string str)
{
Regex rx = new Regex(@"^[0123456789]+$");
return rx.IsMatch(str);
}
/// <summary>
/// 校验是否为正的浮点数
/// </summary>
/// <param name="price">需要检验的字符串</param>
/// <returns>是否为正浮点,是返回true,否则返回false</returns>
public static bool IsFloat(string str)
{
Regex rx = new Regex(@"^[0-9]*(.)?[0-9]+$", RegexOptions.IgnoreCase);
return rx.IsMatch(str.Trim());
}
/// <summary>
/// 检验是否为数字
/// </summary>
/// <param name="str">需要检验的字符串</param>
/// <returns>是否为数字:true代表是,false代表否</returns>
public static bool IsNumber(string str)
{
Regex rx = new Regex(@"^[+-]?[0123456789]*[.]?[0123456789]*$");
return rx.IsMatch(str);
}
/// <summary>
/// 检验字符串是否为日期时间
/// </summary>
/// <param name="str">需要检验的字符串</param>
/// <returns>是否为日期时间:true代表是,false代表否</returns>
public static bool IsDateTime(string str)
{
Regex rx = new Regex(@"^[ ]*[012 ]?[0123456789]?[0123456789]{2}[ ]*[-]{1}[ ]*[01]?[0123456789]{1}[ ]*[-]{1}[ ]*[0123]?[0123456789]{1}[ ]*[012]?[0123456789]{1}[ ]*[:]{1}[ ]*[012345]?[0123456789]{1}[ ]*[:]{1}[ ]*[012345]?[0123456789]{1}[ ]*$");
return rx.IsMatch(str);
}
/// <summary>
/// 检验字符串是否为邮政编码
/// </summary>
/// <param name="str">需要检验的字符串</param>
/// <returns>是否为邮政编码:true代表是,false代表否</returns>
public static bool IsPostCode(string str)
{
Regex rx = new Regex(@"^[0123456789]{6}$");
return rx.IsMatch(str);
}
/// <summary>
/// 检验字符串是否为身份证号
/// </summary>
/// <param name="str">需要检验的字符串</param>
/// <returns>是否为身份证号:true代表是,false代表否</returns>
public static bool IsCode(string str)
{
Regex rx = new Regex(@"^[0123456789]{15,18}$");
return rx.IsMatch(str);
}
/// <summary>
/// 检验字符串是否为电子邮件
/// </summary>
/// <param name="str">需要检验的字符串</param>
/// <returns>是否为电子邮件:true代表是,false代表否</returns>
public static bool IsEMail(string str)
{
Regex rx = new Regex(@"w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*");
return rx.IsMatch(str);
}
/// <summary>
/// 检验字符串是否为中国地区的电话号码
/// </summary>
/// <param name="str">需要检验的字符串</param>
/// <returns>是否为中国地区的电话号码:true代表是,false代表否</returns>
public static bool IsPhoneNumber(string str)
{
Regex rx = new Regex(@"((d{3,4})|d{3,4}-)?d{7,8}(-d{3})*");
return rx.IsMatch(str);
}
/// <summary>
/// 检验字符串是否为汉字
/// </summary>
/// <param name="str">需要检验的字符串</param>
/// <returns>是否为汉字:true代表是,false代表否</returns>
public static bool IsChinese(string str)
{
Regex rx = new Regex(@"u4e00-u9fa5");
return rx.IsMatch(str);
}
/// <summary>
/// 检验字符串是否为双字节字符(包括汉字)
/// </summary>
/// <param name="str">需要检验的字符串</param>
/// <returns>是否为双字节字符:true代表是,false代表否</returns>
public static bool IsDoubleByteChar(string str)
{
Regex rx = new Regex(@"[^x00-xff]");
return rx.IsMatch(str);
}
/// <summary>
/// 检验字符串是否为URL地址
/// </summary>
/// <param name="str">需要检验的字符串</param>
/// <returns>是否为URL地址:true代表是,false代表否</returns>
public static bool IsURLAddress(string str)
{
Regex rx = new Regex(@"[a-zA-z]+://[^s]*");
return rx.IsMatch(str);
}
/// <summary>
/// 检验字符串是否为IP地址
/// </summary>
/// <param name="str">需要检验的字符串</param>
/// <returns>是否为IP地址:true代表是,false代表否</returns>
public static bool IsIPAddress(string str)
{
Regex rx = new Regex(@"d+.d+.d+.d+");
return rx.IsMatch(str);
}
/// <summary>
/// 清除字符串中的HTML标签(对于复杂的嵌套标签有时不准确)
/// </summary>
/// <param name="toEvaluate">指定的要被处理的字符串</param>
/// <returns>清除HTML标签后的字符串</returns>
public static string RemoveHtmlTags(string toEvaluate)
{
Regex rx = new Regex(@"s/<[a-zA-Z/][^>]*>//g", RegexOptions.IgnoreCase);
return rx.Replace(toEvaluate, "");
}
#endregion
编辑器加载中...
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述