【问题标题】:JSF validateRegex do not work with '#,$,%,(),?,!'JSF validateRegex 不适用于 '#,$,%,(),?,!'
【发布时间】: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 需要双反斜杠而不是单反斜杠,以便正确解析正则表达式。

标签: regex jsf jsf-2 jsf-2.2


【解决方案1】:

这接受你想要的。字母、数字、空格、下划线、减号、“.”、“@”、“#”、“$”、“@”和“!”的任意组合。

^[\w\s\-.\@#\$%!]*$

如果您还希望 "?"、"(" 和 ")" 进行验证,请使用:

^[\w\s\-.\@#\$%!\?\(\)]*$

【讨论】:

    【解决方案2】:

    您的正则表达式很好,您可以在此站点regexTester 中对其进行测试,请编写您的完整代码以便为您提供帮助。

    【讨论】:

      猜你喜欢
      • 2017-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-10
      • 2017-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多