3

我正在尝试输入一个使用该pattern属性的输入正则表达式,以确保^[a-zA-Z0-9_]{6,12}$在我的 Scala Play 模板中输入有效的用户名(正则表达式中的部分)或电子邮件。使用 Play 模板时,@用于指示 HTML 的中断和“Scala 到这里”,因此当我输入行并尝试包含电子邮件中使用的 @ 时。它抱怨:

'@' 符号无效

我试过了:

  1. 正常做
  2. 三引号,前面没有转义字符@
  3. 前一个转义字符@
  4. 前面的两个转义字符@(带和不带三引号)

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

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

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

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

有任何想法吗?

(编辑呃抱歉,所以不会显示包装在input标签中的东西,它也不会让我将上面的内容格式化为代码,所以我不得不在我的原始帖子之后添加模式 =“...”而不格式化为这样,道歉。)

4

1 回答 1

3

Scala Play 模板中的转义@可以通过加倍符号来执行。

用于在模式@@中引入文字@

但是,由于您在此处使用正则表达式,请注意,也可能使用十六进制\u0040or\x40\ (但仅当是文字时,即它应该为正则表达式引擎转义,"""\u0040"""例如字符)。

于 2017-09-01T08:39:00.837 回答