WinForm下正则表达式的应用

守love唯诺 2012-07-06

1.引入命名空间:usingSystem.Text.RegularExpressions;

2.首先定义一个枚举

//枚举

privateenumCheckType:int

{

isHomePage=0,//主页

isEmail=1,//E-mail

isUserName=3,//用户名

isPwd=4,//密码

}

3.根据输入的字符串,进行校验

///

///校验输入字符串是否符合规则

///

///被校验的字符串

///字符串校验类别

///bool

privateboolCheckString(stringstrCheck,CheckTypeeType)

{

stringstrRule="";//校验规则

switch(eType)

{

caseCheckType.isHomePage:

strRule=@"^http:\/\/([\w-]+(\.[\w-]+)+(\/[\w-.\/\?%&=\u4e00-\u9fa5]*)?)?$";

break;

caseCheckType.isEmail:

strRule=@"^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$";

break;

caseCheckType.isUserName:

strRule=@"^\w+$";//只能由26个英文字母、数字及下划线组成

break;

caseCheckType.isPwd:

strRule=@"^\w+$";//只能由26个英文字母、数字及下划线组成

break;

default:

break;

}

//开始校验

RegexoReg=newRegex(strRule);

MatchCollectionoCollection=oReg.Matches(strCheck);

if(oCollection.Count>0)

{

returntrue;

}

else

{

returnfalse;

}

}

4.定义上图中TextBox的TextChanged事件

//用户名验证

privatevoidtbName_TextChanged(objectsender,EventArgse)

{

if(!this.CheckString(this.tbName.Text.Trim(),CheckType.isUserName))

{

lbErrorName.Text="只能由26个英文字母、数字及下划线组成";

}

else

{

lbErrorName.Text="用户名格式正确";

}

}

//密码验证

privatevoidtbPwd_TextChanged(objectsender,EventArgse)

{

if(!this.CheckString(this.tbPwd.Text.Trim(),CheckType.isPwd))

{

lbErrorPwd.Text="只能由26个英文字母、数字及下划线组成";

}

else

{

lbErrorPwd.Text="密码格式正确";

}

}

相关推荐