I'm trying to put an input regex that uses the pattern attribute to insure a valid username (the ^[a-zA-Z0-9_]{6,12}$ portion in the regex's below) OR email is entered in my Scala Play template. With Play templates, the @ is used to indicate a break from HTML and that "Scala goes here", so when I have my input line and try to include the @ used in emails. It complains:
Invalid '@' symbol
I've tried:
- Doing it normally
- Triple quotes, no escape character before the
@ - One escape character before the
@ Two escape characters before the
@(with and without triple quotes)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-]+)$/"""
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-]+)$/"
Any ideas?
(EDIT Ugh Sorry, SO won't show stuff wrapped in input tags, and it also won't let me format the above as code, so I had to add just the pattern="..." after my original post without formatting as such, apologies.)
Escaping
@in Scala Play template can be performed by doubling the symbol.Use
@@to introduce a literal@into the pattern.However, since you are using a regex here, note that a hexadecimal
\u0040or\x40might also be used (but only when the\is a literal, i.e. it should be escaped for a regex engine, like"""\u0040""", so that Scala does not parse it as a Unicode char).