我试图输入一个使用pattern
属性的输入正则表达式来确保有效的用户名(下面的正则表达式中的^[a-zA-Z0-9_]{6,12}$
部分)或输入电子邮件我的Scala Play模板。使用Play模板,@
用于指示HTML的中断,并且" Scala来到这里",所以当我有输入行并尝试在电子邮件中包含@使用时。它抱怨道:
无效' @'符号
我试过了:
@
@
@
之前的两个转义字符(有和没有三引号)
图案=#&34; ^ [A-ZA-Z0-9 _] {6,12} $ | / ^ [A-ZA-Z0-9#$%&安培;!' + / = ?^ _`{|}〜 - ] + @ [A-ZA-Z0-9 - ] +(?:[A-ZA-Z0-9 - ] +) $ /&#34; < / p>
图案=&#34;&#34;&#34;!^ [A-ZA-Z0-9 _] {6,12} $ | / ^ [A-ZA-Z0-9#$%&安培?;' + / = ^ _`{|}〜 - ] + @ [A-ZA-Z0-9 - ] +(?:[A-ZA-Z0-9 - ] +) $ /&#34;&#34;&#34;
图案= ^ [A-ZA-Z0-9 _] {6,12} $ | / ^ [A-ZA-Z0-9#$%&安培;!?“ + / = ^ _` {|}〜 - ] + \ @ [A-ZA-Z0-9 - ] +(?:[A-ZA-Z0-9 - ] +) $ /&#34;
图案=#&34; ^ [A-ZA-Z0-9 _] {6,12} $ | / ^ [A-ZA-Z0-9#$%&安培;!' + / = ?(?:[A-ZA-Z0-9 - ] +)| ^ _`{}〜 - - ] + \ @ [A-ZA-Z0-9] + $ /&#34;
有什么想法吗?
(编辑唉很抱歉,SO赢了,不会显示input
个标签中的内容,而且它也不会让我将上面的内容格式化为代码,所以我只需要添加模式= &#34; ...&#34;在我的原始帖子之后没有格式化,道歉。)
答案 0 :(得分:3)
可以通过将符号加倍来执行Scala Play模板中的@
转义。
使用@@
在文字中引入文字@
。
但是,由于您在此处使用正则表达式,请注意也可能使用十六进制\u0040
or \x40
(但仅当\
是文字时,即应该为正则表达式引擎进行转义,像"""\u0040"""
一样,因此Scala不会将其解析为Unicode字符。)