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

 更新时间:2020年6月25日 11:29  点击:1742

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

注意:需要引用命名空间 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());
    }
  }
}

[!--infotagslink--]

相关文章

  • php身份证校验码的计算例子

    下面来给各位同学介绍一个php身份证校验码的计算例子,希望本函数代码能帮助到各位同学哦。 例子 代码如下 复制代码 public function id_ver...2016-11-25
  • phpexcel导出数据身份证后四位0000解决办法

    在php中我们如果要导入excel数据我们通常会使用phpexcel插件了,但是有朋友会发与使用phpexcel导出数据出现身份证后四位是0000情况了,下面我们就来看解决办法。 最...2016-11-25
  • 金额阿拉伯数字转换为中文的存储过程

    Create Procedure AtoC @ChangeMoney Money as Set Nocount ON Declare @String1 char(20) Declare @String2 char(30) ...2016-11-25
  • c#中判断字符串是不是数字或字母的方法

    这篇文章介绍了C#判断字符串是否数字或字母的实例,有需要的朋友可以参考一下...2020-06-25
  • 金额阿拉伯数字转换为中文的自定义函数

    CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
  • C#实现猜数字游戏

    这篇文章主要为大家详细介绍了C#实现猜数字游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • 安卓开发之设置密码只能输入字母和数字的组合

    设置登录密码我们一般会有限制的如由什么组合了,下面我们来看一篇关于安卓开发之设置密码只能输入字母和数字的组合方法,具体的细节如下所示。 无论是电脑还是手机...2016-09-20
  • php导出csv格式数据并将数字转换成文本的思路以及代码分享

    php导出csv格式数据实现:先定义一个字符串 存储内容,例如 $exportdata = '规则111,规则222,审222,规222,服2222,规则1,规则2,规则3,匹配字符,设置时间,有效期'."/n";然后对需要保存csv的数组进行foreach循环,例如复制代...2014-06-07
  • C#判断一个字符串是否是数字或者含有某个数字的方法

    这篇文章主要介绍了C#判断一个字符串是否是数字或者含有某个数字的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • php生成唯一数字id的方法汇总

    关于生成唯一数字ID的问题,是不是需要使用rand生成一个随机数,然后去数据库查询是否有这个数呢?感觉这样的话有点费时间,有没有其他方法呢?当然不是,其实有两种方法可以解决。 1. 如果你只用php而不用数据库的话,那时间戳+随...2015-11-24
  • C#将数字转换成字节数组的方法

    这篇文章主要介绍了C#将数字转换成字节数组的方法,涉及C#字符串操作的技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • C++实现数字转换为十六进制字符串的方法

    这篇文章主要介绍了C++实现数字转换为十六进制字符串的方法,涉及C++操作数字与字符串转换的相关技巧,需要的朋友可以参考下...2020-04-25
  • php数字每三位加逗号的功能函数

    php实现数字格式化,数字每三位加逗号的功能函数,具体代码如下: function num_format($num){ if(!is_numeric($num)){ return false; } $num = explode('.',$num);//把整数和小数分开 $rl = $num[1];//小数部分的值...2015-10-23
  • Springboot实现多线程注入bean的工具类操作

    这篇文章主要介绍了Springboot实现多线程注入bean的工具类操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-27
  • Lua判断变量是否为数字、字符串是否可以转换为数字等

    这篇文章主要介绍了Lua判断变量是否为数字、字符串是否可以转换为数字等,本文讲解了Lua 判断是字符还是数字的方法、Lua判断数字的方法、判断可否转换为数字的方法、判断并且准备一个初值的方法,需要的朋友可以参考下...2020-06-30
  • php 判断是否是中文/英文/数字示例代码

    复制代码 代码如下: $str='asb天水市12'; if (preg_match("/^[/x7f-/xff]+$/", $str)){ echo '全部是汉字'; }else { echo '不全是汉字'; } /** PHP自带的判断是否是中文, eregi('[^/x00-/x7F]', $str ) //中文 ereg...2013-10-04
  • python基于OpenCV模板匹配识别图片中的数字

    这篇文章主要介绍了python基于OpenCV模板匹配识别图片中的数字,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下...2021-03-31
  • C++ 随机数字以及随机数字加字母生成的案例

    这篇文章主要介绍了C++ 随机数字以及随机数字加字母生成的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-12-11
  • php 根据啊拉伯数字转变成大写中文数字

    // 原是是根据用户输入的数字判断再转换成想要的大写数字,如果我们先把大小写存在一个数组,再判断进行转换就OK了。 $data = $_POST['rmb']; if (!ereg("^[0-9.]",$dat...2016-11-25
  • C#实现验证身份证是否合法的方法

    这篇文章主要介绍了C#实现验证身份证是否合法的方法,实例分析了通过自定义函数实现针对身份证合法性验证的技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25