读书人

奇怪的正则表达式,该怎么处理

发布时间: 2012-11-10 10:48:50 作者: rapoo

奇怪的正则表达式

C# code
if (Regex.IsMatch(id, @"^\d{1,8}$", RegexOptions.IgnoreCase))                        {                            _id = int.Parse(id);                            userPo = userBlo.Login(_id, pwd, out status);                        }                        else if (Regex.IsMatch(id, @"^((13)|(14)|(15)|(18))\d{9}$", RegexOptions.IgnoreCase))                        {                            userPo = userBlo.LoginByPhone(id , pwd, out status);                        }                        else if (Regex.IsMatch(id, @"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$", RegexOptions.IgnoreCase))                        {                            userPo = userBlo.LoginByEmail(  id  , pwd, out status);                        }


登录有三种方式,id号、手机号、邮箱
用正则匹配,验证结果很奇怪,用例:id=“181945?”

[解决办法]
id=“181945?”应该会匹配第一个if条件,以数字开头和结尾,1到8个数字
[解决办法]
第一个if,测试正常

读书人网 >asp.net

热点推荐