验证中文、英文、电话、手机、邮箱、数字、数字和字母、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]%' ...
随机推荐
- Creating Your Own Server: The Socket API, Part 2
转:http://www.linuxforu.com/2011/09/creating-your-own-server-the-socket-api-part-2/ By Pankaj Tanwar ...
- C#.NET使用AnimateWindow制作淡入淡出特殊效果的窗体
使用AnimateWindow制作淡入淡出效果的窗体 命名空间: using System.Runtime.InteropServices; API函数: [DllImport("user3 ...
- 虚拟机+ubuntu 图形界面和终端界面的切换
虚拟机环境,在图形界面和文本界面间切换:1 VMWare虚拟机下,由图形界面切换到文本界面,和虚拟机设置有关,默认VM占用Ctrl+Alt为热键,所以由图形界面切换到文本界面的组合键为: Ctrl+ ...
- linux记录登录ip方法
PS:Linux用户操作记录一般通过命令history来查看历史记录,但是如果因为某人误操作了删除了重要的数据,这种情况下history命令就不会有什么作用了.以下方法可以实现通过记录登陆IP地址和所 ...
- Timed Code
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=&qu ...
- Android 高级UI设计笔记21:Android SegmentView(分段选择控件)
1. 分段控制(SegmentView) 首先我们先看看什么是SegmentView的效果,如下: 分段控制这个View控件是ios7的分段控制,和QQ消息页面顶部的效果一样,android没有这个控 ...
- 【Mood-20】滴滤咖啡做法 IT工程师加班必备 更健康的coffee 项目经理加班密鉴
Drip Coffee
- jquery plugins —— Chosen
官网地址:http://harvesthq.github.io/chosen/ Chosen (v1.4.2) Chosen has a number of options and attribute ...
- Windows防火墙出站、入站相关知识总结
出站默认是全部允许,只禁止相关出站规则指定的条目:入站默认是全部禁止,只允许相关入站规则指定的条目. 入站规则其实没什么好说的,直接添加规则允许某IP或端口访问,或允许某程序全部访问,就行了. 要控制 ...
- ionic 中使用ion-slide-box
ion-slide-box 用法: <ion-slide-box class="slide" auto-play="true" does-continue ...