`

C#检验数据有效性验证类

c# 
阅读更多
using System;
using System.Text;
using System.Text.RegularExpressions;

namespace Dachie.Common
{
/// <summary>
/// Common 的摘要说明。
/// </summary>
public class RegexComm
{
//private const string REG_DATE   = @"^(\d{2}|\d{4})[\-\/]((0?[1-9])|(1[0-2]))[\-\/]((0?[1-9])|((1|2)[0-9])|30|31)$";
private const string REG_DATE   = @"^(\d{2}|\d{4})((0[1-9])|(1[0-2]))((0[1-9])|((1|2)[0-9])|30|31)$";
private const string REG_PHONE  = @"^((0[0-9]{2,3}){0,1}([0-9]{7,8}))$";
private const string REG_EMAIL  = @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
private const string REG_MOBILE = @"(^0{0,1}13[0-9]{9}$)";
private const string REG_IDCARD = @"^([0-9]{14}|[0-9]{17})(x|[0-9]){1}$";
private const string REG_TIME   = @"^((([0-1]?[0-9])|(2[0-3]))([\:])([0-5][0-9]))$";

#region 半角验证
/// <summary>
/// 半角验证
/// </summary>
/// <param name="str">验证的字符串</param>
/// <returns></returns>
public static bool IsDBC(string str)
{
UTF8Encoding encoding = new UTF8Encoding();
int byteCount = encoding.GetByteCount(str);
int strLen = str.Length;

if(strLen == byteCount)
{
return true;
}

return false;
}
#endregion

#region 全角验证
/// <summary>
/// 全角验证
/// </summary>
/// <param name="str">验证的字符串</param>
/// <returns></returns>
public static bool IsSBC(string str)
{
UTF8Encoding encoding = new UTF8Encoding();
int byteCount = encoding.GetByteCount(str);
int strLen = str.Length;

if(byteCount == strLen * 3 )
{
return true;
}

return false;
}
#endregion

#region 日期字符串有效性验证
/// <summary>
/// 日期字符串有效性验证
/// </summary>
/// <param name="date">日期字符串</param>
/// <returns>有效:true,否则:false</returns>
public static bool IsValidDate(string date)
{
            return Regex.IsMatch(date, RegexComm.REG_DATE);
}
#endregion

#region Email有效性验证
/// <summary>
/// Email有效性验证
/// </summary>
/// <param name="email">Email字符串</param>
/// <returns>有效:true,否则:false</returns>
public static bool IsValidEmail(string email)
{
            return Regex.IsMatch(email, RegexComm.REG_EMAIL);
}
#endregion

    

#region 电话号码有效性验证
/// <summary>
/// 电话号码有效性验证
/// </summary>
/// <param name="phone">电话号码字符串</param>
/// <returns>有效:true,否则:false</returns>
public static bool IsVaildPhone(string phone)
{
            return Regex.IsMatch(phone, RegexComm.REG_PHONE);
}
#endregion

#region 手机号码有效性验证
/// <summary>
/// 手机号码有效性验证
/// </summary>
/// <param name="mobile">手机号码字符串</param>
/// <returns>有效:true,否则:false</returns>
public static bool IsValidMobile(string mobile)
{
return Regex.IsMatch(mobile,REG_MOBILE);
}
#endregion

#region 身份证号有效性验证
/// <summary>
/// 身份证号有效性验证
/// </summary>
/// <param name="idCard">身份证号字符串</param>
/// <returns>有效:true,否则:false</returns>
public static bool IsValidIdCard(string idCard)
{
            return Regex.IsMatch(idCard, RegexComm.REG_IDCARD);
}
#endregion

#region 日期字符串转换成日期对象
/// <summary>
/// 日期字符串转换成日期对象
/// </summary>
/// <param name="date">日期字符串</param>
/// <returns>日期对象</returns>
public static DateTime CastDateTime(string date)
{
StringBuilder builder = new StringBuilder();
builder.Append(date.Substring(0,4));
builder.Append("-");
builder.Append(date.Substring(4,2));
builder.Append("-");
builder.Append(date.Substring(6,2));

return Convert.ToDateTime(builder.ToString());
}
#endregion

#region 日期对象转化成日期字符串
/// <summary>
/// 日期对象转化成日期字符串
/// </summary>
/// <param name="date">日期对象</param>
/// <returns>日期字符串</returns>
public static string CastDateTime(DateTime date)
{
string strDate = date.ToString("yyyy-MM-dd");
strDate = strDate.Replace("-","");
return strDate;
}
#endregion

#region 时间格式验证
/// <summary>
/// 时间格式验证
/// </summary>
/// <param name="time">时间字符串</param>
/// <returns>正确:true,错误:false</returns>
public static bool IsValidTime(string time)
{
return Regex.IsMatch(time,REG_TIME);
}
#endregion
}
}
分享到:
评论

相关推荐

    C# 源码 判断 身份证号 有效性

    C# 源码 判断 身份证号 有效性 包含:长度 校验位 出生日期 省份 等判断算法

    C# 邮箱地址是否真实存在验证小工具

    C#邮箱验证工具 邮箱地址是否真实存在 邮箱有效性校验 目前这个,只支持一个邮箱地址的验证,过几天再做个支持多邮箱地址验证的,到时再分享。 有需要源码的请留言,回头放出

    C#基于Modbus三种CRC16校验方法的性能对比

    1.背景介绍 主要应用场景在物联网中,底端设备注册报文的上报,需要对报文的有效载荷(data)进行CRC16的复验,验证与设备...本文侧重测试CRC的性能,不讲CRC校验的原理,因为CRC只是个校验数据准确性的工具,而且每个报

    在Infopath中实现数据有效性验证的三种方法

    Infopath是微软Office办公软件家族中的成员之一,它主要的功能是面向客户端收集XML数据,并按照预期定义的格式生成XML文件,它以可视化表单的形式收集数据,并且支持C#编程接口以及外部数据源等。

    EAN13 条码校验程序

    改程序采用C#开发 开发工具为:Microsoft Visual Studio 2005 运行操作系统:windows XP 或windows 2000 推荐使用windows XP 运行环境:framework 2.0 如果系统没有该环境的话需装dotnetfx2.0.exe 使用方法: 1...

    验证中国大陆居民身份证港澳居民居住证以及台湾地区居民居住证

    验证中国大陆居民身份证、港澳居民居住证以及台湾地区居民居住证

    C# 正则应用之——最全的日期正则表达式 没有之一

    首先需要说明的一点,无论是Winform,还是Webform,都有很成熟的日历控件,无论从易用性还是可扩展性上看,日期的选择和校验还是用日历控件来实现比较好。 前几天在CSDN多个版块看到需要日期正则的帖子,所以整理了...

    C# 最全的日期正则表达式,没有之一

    可以通过以下代码验证正则的有效性和性能 DateTime dt = new DateTime(1, 1, 1); DateTime endDay = new DateTime(9999, 12, 31); Stopwatch sw = new Stopwatch(); sw.Start(); Regex dateRegex = new Regex(@"^(?:...

    Java-PHP-C#

    好,让我们继续讨论怎么验证一个email地址. 在一个完整的email地址中有三个部分: POP3 用户名 (在 '@' 左边的一切), '@', 服务器名(就是剩下那部分). 用户名可以含有大小写字母阿拉伯数字,句号 ('.'), 减号('-'), and...

    asp.net知识库

    C#中结构与类的区别 C#中 const 和 readonly 的区别 利用自定义属性,定义枚举值的详细文本 Web标准和ASP.NET - 第一部分 XHTML介绍 在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用...

    校内API开发. pdf

    证并不容易每个ASP页面都需要代码来检验用户身份验证cookie并证明用户身份得到了确定在ASP.NET中身份 验证和授权比在传统ASP中要容易多了在ASP.NET中有 3种形式身份验证:Windows验证、Passport验证和 Forms验证 ...

    正则表达式

    由于某些字符类非常常用,所以JavaScript的正则表达式语法包含一些特殊字符和转义序列来表示这些常用的类.例如, \s 匹配的是空格符,制表符和其它空白符, \s 匹配的则是空白符之外的任何字符. 正则表灰式的字符类 ...

    网上日记本

    在输入的测试数据中可分为有效输入类.无效输入类。其中的错误种类有: 无效输入类 数据类型不匹配,PErrorType =T;否则=F; 你的昵称 文本 管理密码 文本 你的邮箱 文本 确认密码 文本 忘记密码问题 文本 答案 ...

    风越ASP代码生成器2.8

    09、支持对用户输入内容进行服务器端与客户端JS双重验证,有效防止SQL注入 ★ 10、支持自动生成多组多级的级联下拉框功能,快速建立如:省、市、县/公司、部门、小组等形式下拉框 ★ 11、支持表单提交超过100KB的...

    风越.Net代码生成器 [FireCode Creator] V1.3 精简版

    09、支持对用户输入内容进行服务器端与客户端JS双重验证,有效防止SQL注入 ★ 10、支持自动生成多组多级的级联下拉框功能,快速建立如:省、市、县/公司、部门、小组等形式下拉框 ★ 11、支持表单提交超过100KB的...

    风越.net代码生成器 v3.5

    09、支持对用户输入内容进行服务器端与客户端JS双重验证,有效防止SQL注入 ★ 10、支持自动生成多组多级的级联下拉框功能,快速建立如:省、市、县/公司、部门、小组等形式下拉框 ★ 11、支持表单提交超过100KB的...

    风越asp代码生成器 V3.5

    09、支持对用户输入内容进行服务器端与客户端JS双重验证,有效防止SQL注入 ★ 10、支持自动生成多组多级的级联下拉框功能,快速建立如:省、市、县/公司、部门、小组等形式下拉框 ★ 11、支持表单提交超过100KB的...

    风越.net代码生成器v2.9

    09、支持对用户输入内容进行服务器端与客户端JS双重验证,有效防止SQL注入 ★ 10、支持自动生成多组多级的级联下拉框功能,快速建立如:省、市、县/公司、部门、小组等形式下拉框 ★ 11、支持表单提交超过100KB的...

    数据库餐饮管理系统课程设计(2).doc

    3、对用户输入的数据进行严格的检验,尽可能的避免人为错误。 4、实现对消费账目自动结算。 5、实现对消费的历史记录进行查询,支持模糊查询。 6、系统应尽大限度的实现易维护性和易于操作性。 7、界面尽可能美观大方...

    数据库餐饮管理系统课程设计报告书.doc

    3、对用户输入的数据进行严格的检验,尽可能的避免人为错误。 4、实现对消费账目自动结算。 5、实现对消费的历史记录进行查询,支持模糊查询。 6、系统应尽大限度的实现易维护性和易于操作性。 7、界面尽可能美观...

Global site tag (gtag.js) - Google Analytics