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#實(shí)現(xiàn)chart控件動(dòng)態(tài)曲線繪制
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)chart控件動(dòng)態(tài)曲線繪制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02C#用websocket實(shí)現(xiàn)簡易聊天功能(服務(wù)端)
這篇文章主要為大家詳細(xì)介紹了C#用websocket實(shí)現(xiàn)簡易聊天功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02Unity3d實(shí)現(xiàn)Flappy Bird游戲
這篇文章主要為大家詳細(xì)介紹了Unity3d實(shí)現(xiàn)Flappy Bird游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12C#常見的幾種集合 ArrayList,Hashtable,List<T>,Dictionary<K,
本文對C#中常見集合ArrayList,Hashtable,List<T>,Dictionary<K,V>遍歷方法做了簡單的對比和介紹,有需要的朋友可以參考一下。2016-03-03c#使用Unity粒子實(shí)現(xiàn)炮塔發(fā)射系統(tǒng)
Unity自帶粒子發(fā)射器、動(dòng)畫器、渲染器各兩種,利用Unity的粒子系統(tǒng)制作一個(gè)炮塔發(fā)射系統(tǒng),了解粒子系統(tǒng),必須先了解每一個(gè)屬性都代表了什么,之后才能根據(jù)這些原理來調(diào)整出自己滿意的效果2022-04-04