Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正则表达式未拾取Chrome自动填充_C#_Asp.net_Regex - Fatal编程技术网

C# 正则表达式未拾取Chrome自动填充

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

我正在使用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.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"));