C#常用扩展方法
/// <summary>
/// 转换
/// </summary>
public static class ConversionHelper
{
#region 数据格式转换
/// <summary>
/// 转换成Int
/// </summary>
/// <param name="inputValue">输入值</param>
/// <returns></returns>
public static int ToInt(this object inputValue)
{
return inputValue.IsInt() ? int.Parse(inputValue.ToStringValue()) : 0;
} /// <summary>
/// 转换成Int32
/// </summary>
/// <param name="inputValue">输入值</param>
/// <returns></returns>
public static int ToInt32(this object inputValue)
{
return inputValue.IsInt() ? Convert.ToInt32(inputValue) : 0;
} /// <summary>
/// 转换成Int64
/// </summary>
/// <param name="inputValue">输入值</param>
/// <returns></returns>
public static long ToInt64(this object inputValue)
{
return inputValue.IsInt() ? Convert.ToInt64(inputValue) : 0;
} /// <summary>
/// 转换成Double
/// </summary>
/// <param name="inputValue">输入值</param>
/// <returns></returns>
public static Double ToDouble(this object inputValue)
{
return !inputValue.IsNullOrEmpty() ? Convert.ToDouble(inputValue) : 0;
} /// <summary>
/// 转换成Int64
/// </summary>
/// <param name="inputValue">输入值</param>
/// <returns></returns>
public static bool? ToBool(this object inputValue)
{
return inputValue.IsNullOrEmpty() ? (bool?)null : bool.Parse(inputValue.ToStringValue());
} /// <summary>
/// 转换obj 成string
/// </summary>
/// <param name="inputValue">object</param>
/// <returns></returns>
public static string ToStringValue(this object inputValue)
{
return inputValue == null ? "" : inputValue.ToString();
} /// <summary>
/// 转换成数据库字符串
/// </summary>
/// <param name="inputValue">输入值</param>
/// <returns></returns>
public static string ToDbString(this object inputValue)
{
return !inputValue.IsNullOrEmpty() ? "'" + inputValue.ToStringValue().Trim().Replace("'", "''") + "'" : "''";
} /// <summary>
/// 转换成时间类型yyyy-MM-dd
/// </summary>
/// <param name="inputValue">输入值</param>
/// <returns></returns>
public static DateTime ToDateTime(this object inputValue)
{
return inputValue.IsNullOrEmpty() ? DateTime.MinValue : Convert.ToDateTime(inputValue);
} /// <summary>
/// 转换成时间类型
/// </summary>
/// <param name="inputValue">输入值</param>
/// <param name="format">时间格式</param>
/// <returns></returns>
public static DateTime ToDateTime(this object inputValue, string format)
{
return DateTime.ParseExact(inputValue.ToStringValue(), format, null);
}
#endregion
}
/// <summary>
/// 验证
/// </summary>
public static class VerificationHelper
{
#region 正则表达式
//邮政编码
private static readonly Regex RegPostCode = new Regex("^\\d{6}$");
//中国身份证验证
private static readonly Regex RegCardId = new Regex("^\\d{17}[\\d|X]|\\d{15}|\\d{18}$");
//数字
private static readonly Regex RegNumber = new Regex("^\\d+$");
//固定电话
private static readonly Regex RegTel = new Regex("^\\d{3,4}-\\d{7,8}|\\d{7,8}$");
//手机号
private static readonly Regex RegPhone = new Regex("^[1][3-8]\\d{9}$");
//电话号码(包括固定电话和手机号)
private static readonly Regex RegTelePhone = new Regex("^(\\d{3,4}-\\d{7,8}|\\d{7,8})|([1][3-8]\\d{9})$");
//邮箱
private static readonly Regex RegEmail = new Regex("^[\\w-]+@[\\w-]+\\.(com|net|org|edu|mil|tv|biz|info)$");
//中文
private static readonly Regex RegChzn = new Regex("[\u4e00-\u9fa5]");
//IP地址
private static readonly Regex RegIp = new Regex("((25[0-5]|2[0-4]\\d|1?\\d?\\d)\\.){3}(25[0-5]|2[0-4]\\d|1?\\d?\\d)");
#endregion #region 验证方法
/// <summary>
/// 判断是否是数字
/// </summary>
/// <param name="inputValue">输入值</param>
/// <returns></returns>
public static bool IsInt(this object inputValue)
{
int num;
return int.TryParse(inputValue.ToStringValue(), out num);
}
/// <summary>
/// 判断是否是小数
/// </summary>
/// <param name="inputValue">输入值</param>
/// <returns></returns>
public static bool IsDouble(this object inputValue)
{
Double dValue;
return Double.TryParse(inputValue.ToStringValue(), out dValue);
}
/// <summary>
/// 判断是否是小数
/// </summary>
/// <param name="inputValue">输入值</param>
/// <returns></returns>
public static bool IsFloat(this object inputValue)
{
float fValue;
return float.TryParse(inputValue.ToStringValue(), out fValue);
}
/// <summary>
/// 判断字符串是否为空
/// 空:true,不为空:false
/// </summary>
/// <param name="inputValue">输入值</param>
/// <returns></returns>
public static bool IsNullOrEmpty(this object inputValue)
{
return string.IsNullOrEmpty(inputValue.ToStringValue());
} /// <summary>
/// 判断字符串是否为Email
/// </summary>
/// <param name="inputValue">输入值</param>
/// <returns></returns>
public static bool IsEmail(this object inputValue)
{
var match = RegEmail.Match(inputValue.ToStringValue());
return match.Success;
}
/// <summary>
/// 判断字符串是否为固话
/// </summary>
/// <param name="inputValue">输入值</param>
/// <returns></returns>
public static bool IsTel(this object inputValue)
{
var match = RegTel.Match(inputValue.ToStringValue());
return match.Success;
}
/// <summary>
/// 判断字符串是否为手机号
/// </summary>
/// <param name="inputValue">输入值</param>
/// <returns></returns>
public static bool IsPhone(this object inputValue)
{
var match = RegPhone.Match(inputValue.ToStringValue());
return match.Success;
}
/// <summary>
/// 判断字符串是否为电话号码
/// (包含固定电话和手机号)
/// </summary>
/// <param name="inputValue">输入值</param>
/// <returns></returns>
public static bool IsTelePhone(this object inputValue)
{
var match = RegTelePhone.Match(inputValue.ToStringValue());
return match.Success;
}
/// <summary>
/// 判断字符串是否为IP地址
/// </summary>
/// <param name="inputValue">输入值</param>
/// <returns></returns>
public static bool IsIp(this object inputValue)
{
var match = RegIp.Match(inputValue.ToStringValue());
return match.Success;
}
/// <summary>
/// 判断字符串是否为邮编
/// </summary>
/// <param name="inputValue">输入值</param>
/// <returns></returns>
public static bool IsPostCode(this object inputValue)
{
var match = RegPostCode.Match(inputValue.ToStringValue());
return match.Success;
}
/// <summary>
/// 判断字符串是否为身份证
/// </summary>
/// <param name="inputValue">输入值</param>
/// <returns></returns>
public static bool IsCardId(this object inputValue)
{
var match = RegCardId.Match(inputValue.ToStringValue());
return match.Success;
}
/// <summary>
/// 判断字符串是否为中文
/// </summary>
/// <param name="inputValue">输入值</param>
/// <returns></returns>
public static bool IsChzn(this object inputValue)
{
var match = RegChzn.Match(inputValue.ToStringValue());
return match.Success;
}
/// <summary>
/// 判断字符串是否为数字
/// </summary>
/// <param name="inputValue">输入值</param>
/// <returns></returns>
public static bool IsNumber(this object inputValue)
{
var match = RegNumber.Match(inputValue.ToStringValue());
return match.Success;
}
#endregion
}
C#常用扩展方法的更多相关文章
- WebAPi添加常用扩展方法及思维发散
前言 在WebAPi中我们通常需要得到请求信息中的查询字符串或者请求头中数据再或者是Cookie中的数据,如果需要大量获取,此时我们应该想到封装一个扩展类来添加扩展方法,从而实现简便快捷的获取. We ...
- Javascript 常用扩展方法
这篇文章纯粹是为了保存这些方法,供以后翻阅,其实一直保存在 evernote 里面,但觉得还是放到对的地方会好点. 现在收录的很少,希望以后会慢慢增多. 数组扩展 contains,remove 扩展 ...
- js常用扩展方法
在日常的开发过程中,经常会碰到javaScript原生对象方法不够用的情况,所以经常会对javaScript原生方法进行扩展.下面就是在实际工作时,经常使用的一些方法,做一下记录,有需要的可以拿去. ...
- ES6之字符串扩展方法(常用)
es6这个String对象倒是扩展了不少方法,但是很多都是跟字符编码相关,个人选了几个感觉比较常用的方法: includes 搜索字符的神器 还记得我们之前如何判断某个字符串对象是否包含特地字符的吗? ...
- C# 一些常用的字符串扩展方法
以下可能是常用的.net扩展方法,记录下 EString.cs文件 /// <summary> /// 扩展字符串类 /// </summary> public static ...
- Farseer.net轻量级开源框架 中级篇:常用的扩展方法
导航 目 录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 中级篇: BasePage.BaseController.BaseHandler.BaseM ...
- ES6 模版字符串及常用的es6扩展方法
1.ES6 模版字符串es6 模版字符串主要用于简化字符串的拼接 <script type="text/javascript"> let obj={name:'rdb' ...
- ES6 对象定义简写及常用的扩展方法
1.ES6 对象定义简写 es6提供了对象定义里的属性,方法简写方式: 假如属性和变量名一样,可以省略,包括定义对象方法function也可以省略 <script type="text ...
- C#语法糖: 扩展方法(常用)
今天继续分享C#4.0语法糖的扩展方法,这个方法也是我本人比较喜欢的方法.大家先想想比如我们以前写的原始类型不能满足现在的需求,而需要在该类型中添加新的方法来实现时大家会怎么做.我先说一下我没有学习到 ...
随机推荐
- 01分数规划POJ2976(简单模板题)
Dropping tests Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7276 Accepted: 2523 De ...
- [原创]java WEB学习笔记47:Servlet 监听器简介, ServletContext(Application 对象), HttpSession (Session 对象), HttpServletRequest (request 对象) 监听器,利用listener理解 三个对象的生命周期
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- C#: 启动画面设计
Windows Form经常会在启动主界面的时候预先有启动画面,这也是因为用户体验的需要,用户知道已经启动application,而不是在load resource的时候等待.因此这里不能用单线程的思 ...
- ibatis学习过程
ibatis 中map in查询的做法 1:如果传过来的对象就是直接的map数组 list<hashmap<key,value>>的形式 [{1:1},{1:1}}的形式 ...
- CCF真题之最优灌溉
201412-4 问题描述 雷雷承包了很多片麦田,为了灌溉这些麦田,雷雷在第一个麦田挖了一口很深的水井,所有的麦田都从这口井来引水灌溉. 为了灌溉,雷雷需要建立一些水渠,以连接水井和麦田,雷雷也可以利 ...
- 夺命雷公狗---node.js---13之Buffer的转换
其实Buffer也是一种数据结构的东西,但实际中用得并不多,我们只需要知道常用的转换方法即可: /** * Created by leigood on 2016/8/30. */ var str = ...
- [ThinkPHP] 输出、模型的使用
# # ThinkPHP 3.1.2 输出和模型使用 # 讲师:赵桐正 微博:http://weibo.com/zhaotongzheng 本节课大纲: 一.ThinkPHP 3 的输出 ...
- 【sinatra】结合Padrino framework
用Sinatra来做复杂的Web应用时,会出现若干个比较麻烦的点. 要手工作成一个个的应用骨架.作成test .view.public目录等等 将Sinatra DSL集中在一个类中的话,画面数量增加 ...
- java中的拷贝(一)
摘自:http://blog.csdn.net/tounaobun/article/details/8491392 假如说你想复制一个简单变量.很简单: int apples = 5; int pea ...
- 机器学习实战5:k-means聚类:二分k均值聚类+地理位置聚簇实例
k-均值聚类是非监督学习的一种,输入必须指定聚簇中心个数k.k均值是基于相似度的聚类,为没有标签的一簇实例分为一类. 一 经典的k-均值聚类 思路: 1 随机创建k个质心(k必须指定,二维的很容易确定 ...