20

我正在剃刀视图页面中使用 javascript 执行电子邮件地址验证。我要使用的正则表达式类似于Validate email address in JavaScript?

但是,由于正则表达式包含“@”字符,因此在尝试运行 Web 应用程序时出现解析器错误。

我的正则表达式看起来像

/^...otherpart @* ... other part$/

我尝试添加一个'@'字符以使原始正则表达式...@@* ...,这消除了编译错误,但似乎使正则表达式停止工作。(我们在另一个不使用剃须刀引擎的网络应用程序中使用了它,所以我知道它可以工作)。

有没有其他方法可以转义“@”字符?

4

4 回答 4

27

您可以在它前面添加另一个@以逃避@@,尝试省略量词*。如果这似乎不起作用,则添加<text></text>该函数,它会告诉 Razor 不解析内容。或者,您可以将 Javascript 放在单独的文件中以满足您的需求。

如果由于某种原因您@@的字符串中有多个,请将代码块放在前面@:@@

于 2013-10-18T03:28:36.963 回答
15

将以下内容放入 regEx 而不是 @:

@('@')

以上将呈现为单个@。

您的示例将变为:

/^...otherpart @('@')* ... other part$/
于 2016-01-03T18:59:55.620 回答
0

只需使用 double @@
它对我有用,我认为这是唯一的方法。

于 2017-03-20T20:36:09.367 回答
0

最好使用 @('@') 而不是 @@ (不适合我)。 例子

<input class="form-control" pattern="^[a-zA-Z@('@')]{5,20}$"/>
于 2020-03-22T14:28:45.650 回答