我的c#项目中有两个正则表达式,另一个表现不同。
Regex RX = new Regex("^[a-zA-Z0-9]{1,20}@[a-zA-Z0-9]{1,20}.[a-zA-Z]{2,3}$");
if (!RX.IsMatch(emailInput.Text))
{
errorMessage = "Email is invalid!";
}
这个检查电子邮件是否真的是一封电子邮件,我希望用户名相同。我在哪里检查用户名长度和特殊字符。
new Regex(@"^(?=[A-Za-z0-9])(?!.*[._()\[\]-]{2})[A-Za-z0-9._()\[\]-]{3,15}$");
if (!RX.IsMatch(usernameInput.Text))
{
errorMessage = "Username is invalid!";
}
不知何故,每当我运行我的项目时,它返回的用户名无效,我不明白。我输入的用户名无关紧要,它总是返回errorMessage。
答案 0 :(得分:2)
您的正则表达式正在运行,但我认为您忘记将RX分配给新的正则表达式。
new Regex(@"^(?=[A-Za-z0-9])(?!.*[._()\[\]-]{2})[A-Za-z0-9._()\[\]-]{3,15}$");
应该是
RX = new Regex(@"^(?=[A-Za-z0-9])(?!.*[._()\[\]-]{2})[A-Za-z0-9._()\[\]-]{3,15}$");
答案 1 :(得分:1)
看来,您根本不想创建 Regex
实例,让.Net为您做好准备:
if (!Regex.IsMatch(usernameInput.Text,
@"^(?=[A-Za-z0-9])(?!.*[._()\[\]-]{2})[A-Za-z0-9._()\[\]-]{3,15}$")) {
errorMessage = "Username is invalid!";
}