1.引入命名空间:using System.Text.RegularExpressions;
2.首先定义一个枚举
//枚举
private enum CheckType : int
{
isHomePage = 0, //主页
isEmail = 1, //E-mail
isUserName = 3, //用户名
isPwd = 4, //密码
}
3.根据输入的字符串,进行校验
/// <summary>
/// 校验输入字符串是否符合规则
/// </summary>
/// <param name="strCheck">被校验的字符串</param>
/// <param name="iType">字符串校验类别</param>
/// <returns>bool</returns>
private bool CheckString(string strCheck, CheckType eType)
{
string strRule = ""; //校验规则
switch (eType)
{
case CheckType.isHomePage:
strRule = @"^http:([/w-]+(/.[/w-]+)+(//[/w- .///?%&=/u4e00-/u9fa5]*)?)?$";
break;
case CheckType.isEmail:
strRule = @"^([0-9a-zA-Z]([-./w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-/w]*[0-9a-z A-Z]/.)+[a-zA-Z]{2,9})$";
break;
case CheckType.isUserName:
strRule = @"^/w+$"; //只能由26个英文字母、数字及下划线组成
break;
case CheckType.isPwd:
strRule = @"^/w+$"; //只能由26个英文字母、数字及下划线组成
break;
default:
break;
}
//开始校验
Regex oReg = new Regex(strRule);
MatchCollection oCollection = oReg.Matches(strCheck);
if (oCollection.Count > 0)
{
return true;
}
else
{
return false;
}
}
4.定义上图中TextBox的TextChanged事件
//用户名验证
private void tbName_TextChanged(object sender, EventArgs e)
{
if (!this.CheckString(this.tbName.Text.Trim(),CheckType.isUserName))
{
lbErrorName.Text = "只能由26个英文字母、数字及下划线组成 ";
}
else
{
lbErrorName.Text = "用户名格式正确";
}
}
//密码验证
private void tbPwd_TextChanged(object sender, EventArgs e)
{
if (!this.CheckString(this.tbPwd.Text.Trim(), CheckType.isPwd))
{
lbErrorPwd.Text = "只能由26个英文字母、数字及下划线组成 ";
}
else
{
lbErrorPwd.Text = "密码格式正确";
}
}
WinForm下正则表达式的应用
最新推荐文章于 2021-02-21 10:04:33 发布