Использование регулярного выражения javascript, содержащего "@" в бритве

Я выполняю проверку адреса электронной почты с помощью javascript на странице просмотра бритвы. Регулярное выражение, которое я собираюсь использовать, похоже на предложение, предложенное в Подтвердить адрес электронной почты в JavaScript?

Однако, поскольку регулярное выражение содержит символ "@" , я получаю ошибку парсера при попытке запустить веб-приложение.

мое регулярное выражение выглядит как

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

Я попытался добавить символ "@" для создания в исходном regex... @@*..., это устранило ошибку компиляции, но, похоже, перестает работать регулярное выражение. (мы использовали его в другом веб-приложении, которое не использует движок бритвы, поэтому я знаю, что он работает).

Есть ли другой способ избежать символа "@" ?

Ответ 1

Вы можете добавить еще @ перед ним, чтобы выйти из @@, попробуйте оставить квантификатор *. Если это не работает, добавьте <text></text> вокруг функции, он сообщает Razor не анализировать содержимое. Кроме того, вы можете поместить Javascript в отдельный файл, чтобы выполнить ваши потребности.

Если по какой-то причине у вас есть несколько @@ в вашей строке, поместите блоки кода вперед @:@@

Ответ 2

Поместите следующее внутри regEx вместо @:

@('@')

Вышеуказанное будет отображаться в одиночном @.

Ваш пример станет:

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

Ответ 3

Просто используйте double @@.
Это работает для меня, и я думаю, что это единственный способ.