在剃刀中使用包含'@'的javascript正则表达式

Wei*_* Ma 14 javascript regex asp.net-mvc razor asp.net-mvc-4

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

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

我的正则表达式看起来像

/^...otherpart @* ... other part$/
Run Code Online (Sandbox Code Playgroud)

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

有没有其他方法来逃避'@'字符?

hwn*_*wnd 19

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

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

  • 我倾向于将所有这些放入一个单独的文件中,而不是编写一个时髦的正则表达式模式来满足Razor解析器.有时理解正则表达式模式很难,而不必考虑转义字符. (2认同)

Sha*_*uti 12

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

@('@')
Run Code Online (Sandbox Code Playgroud)

以上内容将呈现给单个@.

你的例子将成为:

/^...otherpart @('@')* ... other part$/
Run Code Online (Sandbox Code Playgroud)