在 razor 中使用包含 '@' 的 JavaScript 正则表达式

Using javascript regex containing '@' in razor

本文关键字:JavaScript 正则表达式 razor 包含      更新时间:2023-09-26

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

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

我的正则表达式看起来像

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

我试图添加一个"@"字符来制作原始正则表达式... @@* ...,这消除了编译错误,但似乎使正则表达式停止工作。(我们已经在另一个不使用 Razor 引擎的 Web 应用程序中使用了它,所以我知道它可以工作)。

还有其他方法可以转义"@"字符吗?

可以在它前面再加一个@来转义@@,试着省略量词*。如果这似乎不起作用,请在函数周围添加<text></text>,它告诉 Razor 不要解析内容。或者,您可以将Javascript放在单独的文件中以满足您的需求。

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

将以下内容放在正则表达式中而不是@中:

@('@')

以上内容将呈现为单个 @。

您的示例将变为:

/^...otherpart @('@')* ... other part$/

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

最好使用 @('@

') 而不是 @@(对我不起作用)。

<input class="form-control" pattern="^[a-zA-Z@('@')]{5,20}$"/>