#region 扩展验证方法

        #region <<IsNullOrEmpty()字符串是否为空>>
/// <summary>
/// <para>代码说明:</para>
/// <para>  验证字符串是否为null、Empty、空</para>
/// <para>  如果满足以上条件则返回 true 否则返回 false</para>
/// </summary>
/// <param name="source">字符串</param>
/// <returns>是否为null、Empty、空</returns>
public static bool IsNullOrEmpty(this string source)
{
if (source == null) return true;
return string.IsNullOrEmpty(source.Trim());
}
#endregion #region <<IsEmail()字符串是否为邮箱>>
/// <summary>
/// <para>代码说明:</para>
/// <para>  验证字符串是否为邮箱</para>
/// <para>  如果字符串为邮箱则返回 true 否则返回 false</para>
/// </summary>
/// <param name="source">字符串</param>
/// <returns>是否为邮箱</returns>
public static bool IsEmail(this string source)
{
return Regex.IsMatch(source, @"^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$", RegexOptions.IgnoreCase);
}
#endregion #region <<IsDateTime()字符串是否为日期格式>>
/// <summary>
/// <para>代码说明:</para>
/// <para>  验证字符串是否为日期格式</para>
/// <para>  验证字符串为日期格式则返回 true 否则返回 false</para>
/// </summary>
/// <param name="source">字符串</param>
/// <returns>是否为日期格式</returns>
public static bool IsDateTime(this string source)
{
try
{
DateTime time = Convert.ToDateTime(source);
return true;
}
catch
{
return false;
}
}
#endregion #region <<IsInt()字符串是否为Int类型>>
/// <summary>
/// <para>代码说明:</para>
/// <para>  验证字符串是否为Int类型</para>
/// <para>  验证字符串为Int类型则返回 true 否则返回 false</para>
/// </summary>
/// <param name="source">目标字符串</param>
/// <returns>验证结果</returns>
public static bool IsInt(this string source)
{
Regex regex = new Regex(@"^\d{1,10}$"); if (regex.Match(source).Success)
{
if ((long.Parse(source) > 0x7fffffffL) || (long.Parse(source) < -2147483648L))
{
return false;
}
return true;
}
return false;
}
#endregion #endregion #region 其他扩展方法 #region <<分割字符串>>
/// <summary>
/// <para>代码说明:</para>
/// <para>  通过字符串分割字符串</para>
/// <para>  通过字符串进行分割字符串,返回分割后的string[] 类型</para>
/// </summary>
/// <param name="source">原是字符串</param>
/// <param name="splitstr">分割字符串</param>
public static string[] Split(this string source, string splitstr)
{
string[] strArray = null;
if ((source != null) && (source != ""))
{
strArray = new Regex(splitstr).Split(source);
}
return strArray;
}
#endregion #region <<删除字符串最后一个字符>>
/// <summary>
/// <para>代码说明:</para>
/// <para>  删除字符串的最后一个字符</para>
/// <para>  用于移除掉字符串的最后一个字符,如果该字符串的长度为0,则部会发生任何变化</para>
/// </summary>
/// <param name="source">待删除的字符</param>
/// <returns>删除后的字符</returns>
public static string RemoveLastStr(this string source)
{
return source.Length > ? source.Substring(, source.Length - ) : source;
}
#endregion #endregion

后续更新ing...

String_Helper的更多相关文章

  1. CI(-)框架结构

    一 CI 是什么 CodeIgniter is an Application Development Framework - a toolkit - for people who build web ...

  2. 我的第一个python web开发框架(13)——工具函数包说明(四)

    string_helper.py是字符串操作包,主要对字符串进行检查.过滤和截取等处理. #!/usr/bin/evn python # coding=utf-8 import re def chec ...

  3. 我的第一个python web开发框架(15)——公司介绍编辑功能

    完成登录以后,就会进入后台管理系统的主界面,因为这个是小项目,所以导航菜单全部固化在HTML中,不能修改.一般后台还会有一个欢迎页或关键数据展示的主页面,小项目也没有多大的必要,所以登录后直接进入公司 ...

  4. 我的第一个python web开发框架(17)——产品管理

    这是后台管理系统最后一个功能,产品管理,它的接口与页面功能与上一章差不多. 获取产品列表接口 @get('/api/product/') def callback(): ""&qu ...

  5. 我的第一个python web开发框架(40)——后台日志与异常处理

    后台权限和底层框架的改造终于完成了,小白也终于可以放下紧悬着的心,可以轻松一下了.这不他为了感谢老菜,又找老菜聊了起来. 小白:多谢老大的帮忙,系统终于改造完成了,可以好好放松一下了. 老菜:呵呵,对 ...

  6. 我的第一个python web开发框架(38)——管理员管理功能

    后台管理员的管理功能,它主要用来管理后台的登录账号,绑定权限,当然如果想将后台管理扩展成企业相关管理系统,比如用于公司人事管理,在这个基础上进行适当扩展就可以了. 我们先看看界面效果(也可以看着数据字 ...

  7. 我的第一个python web开发框架(28)——定制ORM(四)

    在数据库操作时,新增记录也是必不可少的,接下来我们应用字典的特性来组合sql语句 先上产品新增接口代码 @post('/api/product/') def callback(): "&qu ...

  8. 我的第一个python web开发框架(29)——定制ORM(五)

    接下来我们要封装的是修改记录模块. 先上产品信息编辑接口代码 @put('/api/product/<id:int>/') def callback(id): ""&q ...

  9. 我的第一个python web开发框架(30)——定制ORM(六)

    在开发中,查询操作是使用最多的,而查询列表是其中之一,查询列表可分为分页查询和不分页查询(它们之间多了一次总记录数查询),还可以分为单表查询和多表关联查询,返回的结构体根据前端使用的表单框架不同而有所 ...

随机推荐

  1. Qt 学习之路 2(65):访问网络(1)

    Home / Qt 学习之路 2 / Qt 学习之路 2(65):访问网络(1) Qt 学习之路 2(65):访问网络(1)  豆子  2013年10月11日  Qt 学习之路 2  18条评论 现在 ...

  2. 【转】Caused by: Action class [com.struts.action.xxxAction] not found 解决方法

    刚学习Struts,自己写了个简单程序,一启动tomcat就报错,但是我按着ctrl点击struts.xml中com.struts.action.LoginAction也能定位到LoginAction ...

  3. AndroidManifest.xml警告

    新建一个android项目后,AndroidManifest.xml有一个黄色警告 作为一个新手,不知道这个警告来自哪里,点击界面下方的不同标签,才知道来自图中的位置 第8行中,application ...

  4. ST第一章基础概念

    1.1程序由程序.数据.文档 测试对象 软件测试目的:发现尽可能多的软件缺陷,并期望通过改错把缺陷统统排除,提高软件质量 1.2 ST分类 1.2.1 方式分类 (1)静态测试 :不执行被测对象程序代 ...

  5. vue数据双向绑定的原理、虚拟dom的原理

    vue数据双向绑定的原理https://www.cnblogs.com/libin-1/p/6893712.html 虚拟dom的原理https://blog.csdn.net/u010692018/ ...

  6. bzoj1041 圆上的整点 数学

    题目传送门 题目大意:求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. 思路:没思路,看大佬的博客(转载自https://blog.csdn.net/csyzcyj),转载只 ...

  7. 小程序给scroll-view设置高度,使得它能适配各种尺寸的手机

    scroll-view占满整个屏幕,且scroll-view的滚动不影响到页面其他地方的滚动 在iphone6的尺寸下,scroll-view设置高度为1110rpx,就不会影响页面其他地方的滚动 但 ...

  8. [转] open-falcon编写的整个脑洞历程

    [From] https://mp.weixin.qq.com/s?__biz=MjM5OTcxMzE0MQ==&mid=400225178&idx=1&sn=c98609a9 ...

  9. 【记录】dvwa总结

    一.Brute Force 选择集束炸弹 设置payload stack attck 防御:密码加密,使用验证码,使用统一的参数代替帐号和密码. 二.Command Injection |,||,&a ...

  10. vue组件中camelCased (驼峰式) 命名与 kebab-case(短横线命名)

    HTML 特性是不区分大小写的.所以,当使用的不是字符串模版,camelCased (驼峰式) 命名的 prop 需要转换为相对应的 kebab-case (短横线隔开式) 命名: 如果你使用字符串模 ...