C# 正则表达式未拾取Chrome自动填充
我正在使用ASP.NET C#进行一些服务器端检查。我在调试时发现系统中有一个错误,下面是我的代码:C# 正则表达式未拾取Chrome自动填充,c#,asp.net,regex,C#,Asp.net,Regex,我正在使用ASP.NET C#进行一些服务器端检查。我在调试时发现系统中有一个错误,下面是我的代码: Regex validEmail = new Regex("/^\\S+@\\S+\\.\\S+$/"); if (!validEmail.IsMatch(email_txt.Text)) { email_lbl.Text = "You must enter a valid email address"; email_lbl.F
Regex validEmail = new Regex("/^\\S+@\\S+\\.\\S+$/");
if (!validEmail.IsMatch(email_txt.Text))
{
email_lbl.Text = "You must enter a valid email address";
email_lbl.ForeColor = System.Drawing.Color.Red;
email_txt.BorderColor = System.Drawing.Color.Red;
email_txt.BorderStyle = System.Web.UI.WebControls.BorderStyle.Solid;
}
else
{
}
这在我的按钮点击事件中
问题是,当我通过从Google Chromes autofill提供的文本框下拉列表中选择电子邮件地址来自动填写表单时”liverpool@live.com“它属于IF语句而不是ELSE语句
但是,如果我手动填写与此完全相同的电子邮件地址,它将落入ELSE语句中
有人知道为什么会发生这种情况吗 在C#regex模式中不允许使用分隔符 使用
新正则表达式(@“^\S+@\S+\.\S+$”
看
:
请注意,
@“
是一个逐字字符串文字,它是编写C#regex模式时使用的最方便的符号。你不必逃避任何事情,只要加倍“
(如”
)就可以只匹配一个“
”完美!我也有这些正则表达式,我应该如何处理它们,“/^\\s*$/”和“^[a-zA-Z0-9\-]+$”只需删除前导/尾随的/
s,并使用@“…”
符号,如果模式中有任何内容需要转义:@“^\s*$”
和“^[a-zA-Z0-9\+$”
。我是否应该在JavaScript中删除尾随的/?在JavaScript文本正则表达式表示法中,必须使用分隔符。我刚刚考虑过正则表达式:\S
也匹配一个文本
。所以,您只需要在@
之后的部分中至少有1个
,对吗?我希望你能接受,并且知道你在做什么。读了Brian的评论后我突然想到。不要试图用正则表达式验证电子邮件。您会错误地将太多的有效电子邮件标记为“无效”。
var rx = new Regex(@"^\S+@\S+\.\S+$");
Console.WriteLine(rx.IsMatch("liverpool@live.com"));