【发布时间】:2015-09-25 07:20:42
【问题描述】:
我正在尝试验证一个 TextArea{基本上是一个评论框},它可以接受几乎所有字符和包含空格的特殊字符。约束是我只想使用 JSF validateRegex 标记。我不想使用验证器 java 类。 在我的代码中,我已经完成了如下操作
<f:validateRegex pattern="^[a-zA-Z0-9\s_\s-.]*[@#$%!]*$">
textarea 不接受任何带有 '#,$,%,(),?,!' 的字符串尽管包含在正则表达式中但它只接受'@'。谁能帮我在 JSF 中为这个 textarea 字段创建一个有效的正则表达式。
【问题讨论】:
-
您必须转义反斜杠,并且可以将两个字符类合并为一个:
"^[\\w\\s.@#$%!-]*$"。另外,请尝试"[\\w\\s.@#$%!-]*",因为matches()似乎与正则表达式一起使用。 -
不,如果我把里面的 jsf 标签
textarea 是不接受字符串值之类的“原因描述不起作用!!”或“原因有效吗?” -
哪个 JSF 实现/版本?哪个 EL 实现/版本?我记得 TomEE 1.x/2.x 上的 MyFaces 2.x 需要双反斜杠而不是单反斜杠,以便正确解析正则表达式。