C#、ASP.NET通用工具类IsWhat?(可以判断数字、身份证、数据类型等等)

所属分类: 软件编程 / C#教程 阅读数: 51
收藏 0 赞 0 分享

好东西都需要人去整理、分类

注意:需要引用命名空间 SyntacticSugar

用法:

/***扩展函数名细***/
 
//【IsInRange】 
int num = 100;
//以前写法
if (num > 100 & num < 1000) { }
//现在写法
if (num.IsInRange(100, 1000)) { } //datetime类型也支持
 
 
 
//【IsNullOrEmpty】
object s = "";
//以前写法
if (s == null || string.IsNullOrEmpty(s.ToString())) { }
//现在写法
if (s.IsNullOrEmpty()) { }
//更顺手了没有 }
 
 
//【IsIn】
string value = "a";
//以前写法我在很多项目中看到
if (value == "a" || value == "b" || value == "c") {
}
//现在写法
if (value.IsIn("a", "b", "c")) {
 
}
 
//【IsValuable与IsNullOrEmpty相反】
string ss = "";
//以前写法
if (!string.IsNullOrEmpty(ss)) { }
//现在写法
if (s.IsValuable()) { }
 
 
List<string> list = null;
//以前写法
if (list != null && list.Count > 0) { }
//现在写法
if (list.IsValuable()) { }
 
 
 
 
//IsIDcard
if ("32061119810104311x".IsIDcard())
{
 
}
 
//IsTelephone
if ("0513-85669884".IsTelephone())
{
 
}
 
//IsMatch 节约你引用Regex的命名空间了
if ("我中国人12".IsMatch(@"人\d{2}")) { }
 
 
//下面还有很多太简单了的就不介绍了
//IsZero
//IsInt
//IsNoInt
//IsMoney
//IsEamil
//IsMobile

源码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
 
namespace SyntacticSugar
{
  /// <summary>
  /// ** 描述:逻辑判段是什么?
  /// ** 创始时间:2015-5-29
  /// ** 修改时间:-
  /// ** 作者:sunkaixuan
  /// </summary>
  public static class IsWhat
  {
    /// <summary>
    /// 值在的范围?
    /// </summary>
    /// <param name="o"></param>
    /// <param name="begin">大于等于begin</param>
    /// <param name="end">小于等于end</param>
    /// <returns></returns>
    public static bool IsInRange(this int o, int begin, int end)
    {
      return o >= begin && o <= end;
    }
    /// <summary>
    /// 值在的范围?
    /// </summary>
    /// <param name="o"></param>
    /// <param name="begin">大于等于begin</param>
    /// <param name="end">小于等于end</param>
    /// <returns></returns>
    public static bool IsInRange(this DateTime o, DateTime begin, DateTime end)
    {
      return o >= begin && o <= end;
    }
 
    /// <summary>
    /// 在里面吗?
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="o"></param>
    /// <param name="values"></param>
    /// <returns></returns>
    public static bool IsIn<T>(this T o, params T[] values)
    {
      return values.Contains(o);
    }
 
    /// <summary>
    /// 是null或""?
    /// </summary>
    /// <returns></returns>
    public static bool IsNullOrEmpty(this object o)
    {
      if (o == null || o == DBNull.Value) return true;
      return o.ToString() == "";
    }
    /// <summary>
    /// 是null或""?
    /// </summary>
    /// <returns></returns>
    public static bool IsNullOrEmpty(this Guid? o)
    {
      if (o == null) return true;
      return o == Guid.Empty;
    }
    /// <summary>
    /// 是null或""?
    /// </summary>
    /// <returns></returns>
    public static bool IsNullOrEmpty(this Guid o)
    {
      if (o == null) return true;
      return o == Guid.Empty;
    }
 
    /// <summary>
    /// 有值?(与IsNullOrEmpty相反)
    /// </summary>
    /// <returns></returns>
    public static bool IsValuable(this object o)
    {
      if (o == null) return false;
      return o.ToString() != "";
    }
    /// <summary>
    /// 有值?(与IsNullOrEmpty相反)
    /// </summary>
    /// <returns></returns>
    public static bool IsValuable(this IEnumerable<object> o)
    {
      if (o == null || o.Count() == 0) return false;
      return true;
    }
 
    /// <summary>
    /// 是零?
    /// </summary>
    /// <param name="o"></param>
    /// <returns></returns>
    public static bool IsZero(this object o)
    {
      return (o == null || o.ToString() == "0");
    }
 
    /// <summary>
    /// 是INT?
    /// </summary>
    /// <param name="o"></param>
    /// <returns></returns>
    public static bool IsInt(this object o)
    {
      if (o == null) return false;
      return Regex.IsMatch(o.ToString(), @"^\d+$");
    }
    /// <summary>
    /// 不是INT?
    /// </summary>
    /// <param name="o"></param>
    /// <returns></returns>
    public static bool IsNoInt(this object o)
    {
      if (o == null) return true;
      return !Regex.IsMatch(o.ToString(), @"^\d+$");
    }
 
    /// <summary>
    /// 是金钱?
    /// </summary>
    /// <param name="o"></param>
    /// <returns></returns>
    public static bool IsMoney(this object o)
    {
      if (o == null) return false;
      double outValue = 0;
      return double.TryParse(o.ToString(), out outValue);
    }
 
    /// <summary>
    /// 是邮箱?
    /// </summary>
    /// <param name="o"></param>
    /// <returns></returns>
    public static bool IsEamil(this object o)
    {
      if (o == null) return false;
      return Regex.IsMatch(o.ToString(), @"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$");
    }
 
    /// <summary>
    /// 是手机?
    /// </summary>
    /// <param name="o"></param>
    /// <returns></returns>
    public static bool IsMobile(this object o)
    {
      if (o == null) return false;
      return Regex.IsMatch(o.ToString(), @"^\d{11}$");
    }
 
    /// <summary>
    /// 是座机?
    /// </summary>
    public static bool IsTelephone(this object o)
    {
      if (o == null) return false;
      return System.Text.RegularExpressions.Regex.IsMatch(o.ToString(), @"^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}$");
 
    }
 
    /// <summary>
    /// 是身份证?
    /// </summary>
    /// <param name="o"></param>
    /// <returns></returns>
    public static bool IsIDcard(this object o)
    {
      if (o == null) return false;
      return System.Text.RegularExpressions.Regex.IsMatch(o.ToString(), @"^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$");
    }
 
    /// <summary>
    ///是适合正则匹配?
    /// </summary>
    /// <param name="o"></param>
    /// <param name="begin">大于等于begin</param>
    /// <param name="end">小于等于end</param>
    /// <returns></returns>
    public static bool IsMatch(this object o, string pattern)
    {
      if (o == null) return false;
      Regex reg = new Regex(pattern);
      return reg.IsMatch(o.ToString());
    }
  }
}

更多精彩内容其他人还在看

C#使用oledb读取excel表格内容到datatable的方法

这篇文章主要介绍了C#使用oledb读取excel表格内容到datatable的方法,涉及C#操作oledb及datatable的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

C#使用oledb操作excel文件的方法

这篇文章主要介绍了C#使用oledb操作excel文件的方法,涉及C#中oledb操作excel的相关技巧,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C#使用IHttpModule接口修改http输出的方法

这篇文章主要介绍了C#使用IHttpModule接口修改http输出的方法,涉及C#操作IHttpModule接口的相关技巧,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C#给图片加水印的简单实现方法

这篇文章主要介绍了C#给图片加水印的简单实现方法,涉及C#操作图片的相关技巧,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C#生成随机数的方法小结

这篇文章主要介绍了C#生成随机数的方法,实例总结了C#生成随机数的相关技巧,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C#使用jQuery实现无刷新评论提交的方法

这篇文章主要介绍了C#使用jQuery实现无刷新评论提交的方法,涉及C#结合jQuery进行Ajax操作的相关技巧,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C#读取中文文件出现乱码的解决方法

这篇文章主要介绍了C#读取中文文件出现乱码的解决方法,涉及C#中文编码的操作技巧,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C#图像对比度调整的方法

这篇文章主要介绍了C#图像对比度调整的方法,涉及C#实现图像对比度操作的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

C#图像灰度级拉伸的方法

这篇文章主要介绍了C#图像灰度级拉伸的方法,涉及C#灰度操作的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

C#图像线性变换的方法

这篇文章主要介绍了C#图像线性变换的方法,涉及C#操作图像线性变换的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多