验证中文、英文、电话、手机、邮箱、数字、数字和字母、Url地址和Ip地址的正则表达式
Helper类代码
public class Helper
{
#region 单列循环
private Helper() { } private static Helper instance = null;
/// <summary>
/// 静态实例化单体模式
/// 保证应用程序操作某一全局对象,让其保持一致而产生的对象
/// </summary>
/// <returns></returns>
public static Helper GetInstance()
{
if (instance == null)
{
instance = new Helper();
}
return instance;
}
#endregion #region 是否为汉字
/// <summary>
/// 验证输入的是否为汉字
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public bool IsChinese(string input)
{
return IsMatch(@"^[\u4e00-\u9fa5]+$", input);
}
#endregion #region 是否为手机号码
/// <summary>
/// 验证是否为手机号码
/// </summary>
/// <param name="mobile">输入的手机号码</param>
/// <returns></returns>
public bool IsMobile(string mobile)
{
string reg = "^1[3|4|5|7|8][0-9]\\d{8}$";
return IsMatch(reg, mobile);
}
#endregion #region 是否为电话号码
/// <summary>
/// 验证是否为电话号码
/// </summary>
/// <param name="phone">电话号码</param>
/// <returns></returns>
public bool IsPhone(string phone)
{
string regex = "^(\\d{3,4}-)\\d{7,8}$";
return IsMatch(regex, phone);
}
#endregion #region 是否为数字
/// <summary>
/// 是否为数字
/// </summary>
/// <param name="number"></param>
/// <returns></returns>
private bool IsNumber(string number)
{
string regex = "^-?\\d+$|^(-?\\d+)(\\.\\d+)?$";
return IsMatch(regex, number);
}
#endregion #region 匹配非负整数
/// <summary>
/// 匹配非负整数
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public bool IsNotNagtive(string input)
{
return IsMatch(@"^\d+$", input);
}
#endregion #region 匹配正整数
/// <summary>
/// 匹配正整数
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public bool IsUnit(string input)
{
return IsMatch(@"^[0-9]*[1-9][0-9]*$", input);
}
#endregion #region 字符是否包含英文
/// <summary>
/// 判断输入字符是否包含英文
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public bool IsHaveEnglish(string input)
{
return IsMatch(@"^[A-Za-z]+$", input);
}
#endregion #region 是否为Email
/// <summary>
/// 是否为Email
/// </summary>
/// <param name="mail"></param>
/// <returns></returns>
public bool IsEmail(string mail)
{
string regex = @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
return IsMatch(regex, mail);
}
#endregion #region 判断是否包含数字和英文字母
/// <summary>
/// 判断是否包含数字和英文字母
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public bool IsNumAndEng(string input)
{
return IsMatch(@"^[A-Za-z0-9]+$", input);
}
#endregion #region 判断是否为url
/// <summary>
/// 判断是否为超链接
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public bool IsUrl(string url)
{
string regex = @"[a-zA-z]+://[^\s]*";
return IsMatch(regex, url);
}
#endregion #region 判断输入的字符串是否是一个合法IP地址
/// <summary>
/// 判断输入的字符串是否是一个合法IP地址
/// </summary>
/// <param name="ip"></param>
/// <returns></returns>
public bool IsIPV4(string ip)
{
string[] ips = ip.Split(',');
for (int i = ; i < ips.Length; i++)
{
if (!IsMatch(@"^\d+$", ips[i]))
{
return false;
}
if (Convert.ToUInt16(ips[i]) > )
{
return false;
}
}
return true;
}
#endregion #region 判断输入的字符串是否是一个合法的IPV6地址
/// <summary>
/// 判断输入的字符串是否是一个合法的IPV6地址
/// </summary>
/// <param name="ip"></param>
/// <returns></returns>
public bool IsIPV6(string ip)
{
string pattern = "";
string temp = ip;
string[] strs = temp.Split(':');
if (strs.Length > )
{
return false;
}
int count = Helper.GetStringCount(ip, "::");
if (count > )
{
return false;
}
else if (count == )
{
pattern = @"^([\da-f]{1,4}:){7}[\da-f]{1,4}$";
return IsMatch(pattern, ip);
}
else
{
pattern = @"^([\da-f]{1,4}:){0,5}::([\da-f]{1,4}:){0,5}[\da-f]{1,4}$";
return IsMatch(pattern, ip);
}
}
#endregion /// <summary>
/// 调用Regex中IsMatch函数实现一般的正则表达式匹配
/// </summary>
/// <param name="pattern">要匹配的正则表达式模式。</param>
/// <param name="input">要搜索匹配项的字符串</param>
/// <returns>如果正则表达式找到匹配项,则为 true;否则,为 false。</returns>
public static bool IsMatch(string pattern, string input)
{
if (input == null || input == "")
return false;
Regex regex = new Regex(pattern);
return regex.IsMatch(input);
} /// <summary>
/// 从输入字符串的第一个字符开始,用替换字符串替换指定的正则表达式模式的所有匹配项
/// </summary>
/// <param name="pattern">模式字符串</param>
/// <param name="input">输入字符串</param>
/// <param name="replacement">用于替换的字符串</param>
/// <returns>返回替换后的结果</returns>
public static string Replace(string pattern, string input, string replacement)
{
Regex regex = new Regex(pattern);
return regex.Replace(input, replacement);
} /// <summary>
/// 在由正则表达式模式定义的位置拆分输入字符串
/// </summary>
/// <param name="pattern">模式字符串</param>
/// <param name="input">输入字符串</param>
/// <returns></returns>
public static string[] Split(string pattern, string input)
{
Regex regex = new Regex(pattern);
return regex.Split(input);
} /// <summary>
/// 判断compare在input中出现的次数
/// </summary>
/// <param name="input">源字符串</param>
/// <param name="compare">用于比较的字符串</param>
/// <returns>字符串compare在input中出现的次数</returns>
public static int GetStringCount(string input, string compare)
{
int index = input.IndexOf(compare);
if (index != -)
{
return + GetStringCount(input.Substring(index + compare.Length), compare);
}
else
{
return ;
}
} //private static string GetRegularFormula(string RegulatFormula)
//{
// string str = "";
// if (RegulatFormula.ToUpper().IndexOf("RegularFormula".ToUpper()) > -1)
// {
// RegularFormula formula = new RegularFormula();
// }
//}
}
测试代码
protected void btnVerification_Click(object sender, EventArgs e)
{
string chinese = txtChinese.Text.Trim();
string english = txtEnglish.Text.Trim();
string numEng = txtNumAndEng.Text.Trim();
string num = txtInteger.Text.Trim();
string mobile = txtMobile.Text.Trim();
string phone = txtPhome.Text.Trim();
string emil = txtMail.Text.Trim();
string url = txtUrl.Text.Trim();
if (Helper.GetInstance().IsChinese(chinese))
{
Response.Write("输入的中文正确:" + chinese + "<br/>");
}
else
{
Response.Write("请输入全中文<br/>");
}
if (Helper.GetInstance().IsHaveEnglish(english))
{
Response.Write("输入的为英文字符串:" + english + "<br/>");
}
else
{
Response.Write("请输入全英文<br/>");
}
if (Helper.GetInstance().IsNumAndEng(numEng))
{
Response.Write("数字字母混合:" + numEng + "<br/>");
}
else
{
Response.Write("不是正确的数字字母混合<br/>");
}
if (Helper.GetInstance().IsUnit(num))
{
Response.Write("输入的为正整数:" + num + "<br/>");
}
else if (Helper.GetInstance().IsNotNagtive(num))
{
Response.Write("输入的为负整数:" + num + "<br/>");
}
else
{
Response.Write("数字输入有误<br/>");
}
if (Helper.GetInstance().IsMobile(mobile))
{
Response.Write("手机号码为:" + mobile + "<br/>");
}
else
{
Response.Write("手机号码不正确<br/>");
}
if (Helper.GetInstance().IsPhone(phone))
{
Response.Write("电话号码为:" + phone + "<br/>");
}
else
{
Response.Write("电话号码有误<br/>");
}
if (Helper.GetInstance().IsEmail(emil))
{
Response.Write("邮箱地址为:" + emil + "<br/>");
}
else
{
Response.Write("邮箱地址有误<br/>");
}
if (Helper.GetInstance().IsUrl(url))
{
Response.Write("url地址为:" + url + "<br/>");
}
else
{
Response.Write("请输入正确的url地址");
}
}
结果图如下:

验证中文、英文、电话、手机、邮箱、数字、数字和字母、Url地址和Ip地址的正则表达式的更多相关文章
- iOS 开发 常用的正则验证表达式:电话 、邮箱等等
#pragma mark - 验证手机号 +(BOOL)checkForMobilePhoneNo:(NSString *)mobilePhone{ NSString *regEx = @" ...
- js正则判断电话/手机/邮箱/
用途:校验ip地址的格式 输入:strIP:ip地址返回:如果通过验证返回true,否则返回false:*/ function isIP(strIP) { if (isNull(strIP)) ret ...
- Andorid 手机WIFI连接的Mac地址和IP地址
public static String getInfo() { WifiManager wifi = (WifiManager) getSystemService(Contex ...
- WPF数字输入框和IP地址输入框
数字输入框 简介 在业务中,我们经常需要限制用户的输入,比如限制输入长度,限制只能输入数字等等.限制输入长度WPF内置的TextBox已经帮我们解决了,但是限制输入数字却并未在WPF中内置解决方案.使 ...
- (C#)IP地址与数字地址相互转换
站长网IP查询地址:http://tool.chinaz.com/ip/ 和ip地址转换为数字的工具地址:http://www.msxindl.com/tools/ip/ip_num.asp 可以看到 ...
- 如何查看连接到手机热点的ip地址
因为最近玩树莓派,需要手机做热点,然后用树莓派连接到这个热点上,苦于不知道树莓派被分配了什么样的ip地址,经过一番探索,我发现了两种办法, 安装一个 android terminal( 安卓命令行), ...
- C#验证字符串是否是数字,是否包括中文,是否是邮箱格式,是否是电话格式
using System; using System.Web; using System.Text; using System.Web.UI.WebControls; ...
- 常用正则表达式大全,手机、电话、邮箱、身份证(最严格的验证)、IP地址、网址、日期等
<script type="text/javascript">/* * 手机号码格式 * 只允许以13.15.18开头的号码 * 如:13012345678.15929 ...
- sql 查询字段是中文/英文/数字 正则表达式
一.包含中文字符 select * from 表名 where 列名 like '%[吖-座]%' 二.包含英文字符 select * from 表名 where 列名 like '%[a-z]%' ...
随机推荐
- Foxit Reader 插件下载
http://www.foxitsoftware.com/Secure_PDF_Reader/addons.php#install 百度云:http://pan.baidu.com/s/1i3DSlv ...
- 汇编中 .fill 的作用
.fill 语法:.fill repeat, size, value 含义是反复拷贝 size个字节,重复 repeat 次, 其中 size 和 value 是可选的,默 ...
- Android实现定时器的方法
一.Handler 和 Thread package com.lstech.app; import android.app.Activity; import android.os.Bundle; im ...
- 3.2html学习笔记之图片
<img src="" width="50%" alt="加载时候或无法显示时候显示的文字" height="让浏览器预先给 ...
- 适配iOS9遇到的一些问题_Scheme白名单_ Bitcode及解决办法
升级Xcode7 运行项目发现报错如下: 1.Scheme白名单问题 -canOpenURL: failed for URL: “weixin://app/wxdaae92a9cfe5d54c/” - ...
- gridview_RowCommand 获取当前行中的控件
<asp:GridView ID="gvStorglog" runat="server" Width="100%" SkinID=&q ...
- B - Fill
Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submit Status Practice UV ...
- H5神器之canvas应用——网页修改保存图片
因为最近项目上的要求,需要在页面中可以对一张图片进行涂改和添加文字,然后再保存到(服务器)本地,因为也是第一次接触这方面的,然后爬网页啊爬网页,之后发现了一款adobe开发的一款插件,适合 Anroi ...
- Oracle基础 游标
一.游标 游标用来处理从数据库中检索的多行记录(使用SELECT语句).利用游标,程序可以逐个地处理和遍历一次检索返回的整个记录集. 为了处理SQL语句,Oracle将在内存中分配一个区域,这就是上下 ...
- phpQuery用法
了解phpQuery使用前了温习jquery.js的选择用法 jquery选择器,还有一个衍生产品QueryList 例: include 'phpQuery.php'; phpQuery::newD ...