问题描述
我现在修改一个程序,其中有一个检验邮箱地址是否正确的正则表达式的函数,如下所示:publicboolCheckMailAddress(stringstr){string[]stra=str.Split(';');for(inti=0;i<stra.Length;i++){stringpat=@"w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*";//Compiletheregularexpression.Regexr=newRegex(pat,RegexOptions.IgnoreCase);//Matchtheregularexpressionpatternagainstatextstring.Matchm=r.Match(stra[i]);if(!m.Success){MessageBox.Show("邮箱格式不符!错误邮箱:"+stra[i]);returnfalse;}}returntrue;}现在的问题是我输入一个非法的邮箱,它不能判断出该邮箱的准确性,例如:minxihotel1104@sina.com这个邮箱存在空格符,而函数的正则表达式缺少对空格符的检验,它会将这个邮箱认为是正确的,我现在需要在该函数的正则表达式中修改来使得能够对该带有空格符的邮箱的检验,希望各位好心的大侠帮帮小弟,如果哪位觉得这个正则表达式还存在其他问题,也请大侠帮助小弟改进,在下不胜感激!
解决方案
解决方案二:
开头和末尾加上^和$。你说的问题是因为如果中间有空格它会从空格之后的部分验证为合格的email^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$
解决方案三:
不是,例如:minxihotel1104@sina.com这个邮箱用户名存在空格符,我想让正则表达式能够判断出该邮箱存在空格,是非法的邮箱
解决方案四:
正则不好用吧,我给你个//验证Emailvarre=/^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$/;if(!re.test(document.getElementById("txtCompanyEmail").value)){alert("请输入格式正确的Email");document.form1.txtCompanyEmail.focus();returnfalse;}
解决方案五:
各位大侠,我就要正则式的,希望大家帮帮我,急用啊,先谢谢各位
解决方案六:
-_-#,一楼说的楼主试过没有。。。另外判断规则时,用Regex.IsMatch,而不用Regex.MatchpublicboolCheckMailAddress(stringstr){string[]stra=str.Split(';');for(inti=0;i<stra.Length;i++){stringpat=@"^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$";//Compiletheregularexpression.Regexr=newRegex(pat,RegexOptions.IgnoreCase);//Matchtheregularexpressionpatternagainstatextstring.if(!r.IsMatch(str)){MessageBox.Show("邮箱格式不符!错误邮箱:"+stra[i]);returnfalse;}}returntrue;}