C#、ASP.NET通用工具類IsWhat?(可以判斷數(shù)字、身份證、數(shù)據(jù)類型等等)
更新時(shí)間:2015年06月08日 09:48:52 投稿:junjie
這篇文章主要介紹了C#、ASP.NET通用工具類IsWhat?(可以判斷數(shù)字、身份證、數(shù)據(jù)類型等等),本文收集整理了多個(gè)擴(kuò)展函數(shù),簡單實(shí)用,項(xiàng)目必備,如值范圍、在里面嗎、是null或""?、是零?等等,需要的朋友可以參考下
好東西都需要人去整理、分類
注意:需要引用命名空間 SyntacticSugar
用法:
/***擴(kuò)展函數(shù)名細(xì)***/
//【IsInRange】
int num = 100;
//以前寫法
if (num > 100 & num < 1000) { }
//現(xiàn)在寫法
if (num.IsInRange(100, 1000)) { } //datetime類型也支持
//【IsNullOrEmpty】
object s = "";
//以前寫法
if (s == null || string.IsNullOrEmpty(s.ToString())) { }
//現(xiàn)在寫法
if (s.IsNullOrEmpty()) { }
//更順手了沒有 }
//【IsIn】
string value = "a";
//以前寫法我在很多項(xiàng)目中看到
if (value == "a" || value == "b" || value == "c") {
}
//現(xiàn)在寫法
if (value.IsIn("a", "b", "c")) {
}
//【IsValuable與IsNullOrEmpty相反】
string ss = "";
//以前寫法
if (!string.IsNullOrEmpty(ss)) { }
//現(xiàn)在寫法
if (s.IsValuable()) { }
List<string> list = null;
//以前寫法
if (list != null && list.Count > 0) { }
//現(xiàn)在寫法
if (list.IsValuable()) { }
//IsIDcard
if ("32061119810104311x".IsIDcard())
{
}
//IsTelephone
if ("0513-85669884".IsTelephone())
{
}
//IsMatch 節(jié)約你引用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>
/// ** 描述:邏輯判段是什么?
/// ** 創(chuàng)始時(shí)間:2015-5-29
/// ** 修改時(shí)間:-
/// ** 作者: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>
/// 是手機(jī)?
/// </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>
/// 是座機(jī)?
/// </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());
}
}
}
您可能感興趣的文章:
- 如何批量清理系統(tǒng)臨時(shí)文件(語言:C#、 C/C++、 php 、python 、java )
- C#、.Net中把字符串(String)格式轉(zhuǎn)換為DateTime類型的三種方法
- C#、ASP.NET通用擴(kuò)展工具類之TypeParse
- java、php、C#、asp實(shí)現(xiàn)短信群發(fā)功能的方法
- 如何讓C#、VB.NET實(shí)現(xiàn)復(fù)雜的二進(jìn)制操作
- C# Split分隔字符串的應(yīng)用(C#、split、分隔、字符串)
- C#如何安全、高效地玩轉(zhuǎn)任何種類的內(nèi)存之Span的本質(zhì)
相關(guān)文章
C#控制臺程序中處理2個(gè)關(guān)閉事件的代碼實(shí)例
這篇文章主要介紹了C#控制臺程序中處理2個(gè)關(guān)閉事件的代碼實(shí)例,本文中的2個(gè)關(guān)閉事件是指Ctrl+C事件和窗口的關(guān)閉按鈕事件,需要的朋友可以參考下2014-09-09
C#導(dǎo)航器Xpath與XPathNavigator類
這篇文章介紹了C#導(dǎo)航器Xpath與XPathNavigator類,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
C#中把字符串String轉(zhuǎn)換為整型Int的小例子
這篇文章主要介紹了C#中把字符串String轉(zhuǎn)換為整型Int的小例子,本文使用TryParse方法實(shí)現(xiàn)轉(zhuǎn)換,需要的朋友可以參考下2014-08-08
C#設(shè)計(jì)模式之Mediator中介者模式解決程序員的七夕緣分問題示例
這篇文章主要介紹了C#設(shè)計(jì)模式之Mediator中介者模式解決程序員的七夕緣分問題,簡單說明了中介者模式的定義并結(jié)合七夕緣分問題實(shí)例分析了中介者模式的具體使用技巧,需要的朋友可以參考下2017-09-09

