Scala Play: недопустимый символ «@» в регулярном выражении электронной почты

Я пытаюсь ввести регулярное выражение ввода, которое использует атрибут pattern для обеспечения действительного имени пользователя (часть ^[a-zA-Z0-9_]{6,12}$ в регулярном выражении ниже) ИЛИ адрес электронной почты введен в мой шаблон Scala Play. В шаблонах Play @ используется для обозначения разрыва с HTML и того, что «Scala идет сюда», поэтому, когда у меня есть строка ввода и я пытаюсь включить @, используемый в электронных письмах. Он жалуется:

Недопустимый символ "@"

Я пытался:

  1. Делаю это нормально
  2. Тройные кавычки, без escape-символа перед @
  3. Один escape-символ перед @
  4. Два escape-символа перед @ (с тройными кавычками и без них)

    pattern="^[a-zA-Z0-9_]{6,12}$|/^[a-zA-Z0-9.!#$%&'+/=?^_`{|} ~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)$/"

    pattern="""^[a-zA-Z0-9_]{6,12}$|/^[a-zA-Z0-9.!#$%&'+/=?^_`{ |}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)$/"""

    шаблон=^[a-zA-Z0-9_]{6,12}$|/^[a-zA-Z0-9.!#$%&'+/=?^_`{|}~ -]+\@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)$/"

    pattern="^[a-zA-Z0-9_]{6,12}$|/^[a-zA-Z0-9.!#$%&'+/=?^_`{|} ~-]+\@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)$/"

Любые идеи?

(ИЗМЕНИТЬ Тьфу, извините, SO не будет показывать вещи, завернутые в теги input, а также не позволит мне отформатировать приведенное выше как код, поэтому мне пришлось добавить только pattern="..." после моего исходного сообщения без форматирования так что извиняюсь)


person NateH06    schedule 01.09.2017    source источник
comment
Попробуйте удвоить @: @@. В противном случае попробуйте \u0040 или \x40.   -  person Wiktor Stribiżew    schedule 01.09.2017
comment
Двойной знак @ сработал. Если вы добавите это как официальный ответ, я поставлю вам галочку, и вы сможете получить сладкие сладкие баллы.   -  person NateH06    schedule 01.09.2017


Ответы (1)