JSF <h:inputtextarea>输入密钥/正则表达式验证器的问题

时间:2015-08-25 12:05:37

标签: html regex jsf

我的<h:inputTextArea>内有<f:validateRegex>标记。

每当在文本区域内按下回车键以换行新行,然后按下提交按钮时,即使它不应无效,也表示textArea无效。

我从textArea中移除了<f:validateRegex>标签,一切正常,所以问题就在那里,但我没有足够的经验来解决这个问题的正则表达式,所以任何帮助将不胜感激,这里是部分我遇到这个问题的代码:

<h:inputTextarea value="#{supportBean.userRequest.contents}"
                            id="contents" required="true" validatorMessage="#{msgs['supportform.contents.invalid']}"
                            requiredMessage="#{msgs['supportform.contents.invalid']}"
                            rows="6" >
                            <f:validateRegex pattern="\s*?[a-zA-Z-'א-ת]{2,}+.*" />
                        </h:inputTextarea>

修改

输入文本区域用于联系我们表单中的评论。

我没有创建这个正则表达式模式,我不是100%肯定它应该做什么,但我需要确保用户只输入英文字符,希伯来字符,数字,空格或新行和当前模式工作非常糟糕。

因此,为了解决这个问题,我需要一个允许上述内容的新模式。

1 个答案:

答案 0 :(得分:0)

正则表达式允许您实现它。

基本规则:

  • []这是一个班级。在里面你可以说出你会允许的内容。

  • +这意味着至少有一个

  • ^这意味着从一开始。

  • $这意味着结束。

示例:

  • ^[abc]+$ - 仅允许字符abc从开始到结束。

  • ^[a-z]$ - 从字母开头到结尾都会有字母。

  • ^\w+$ - 允许A-Za-z0-9_

  • ^[\w\s\-]+$ - 将允许上一个示例加上空格和-跟踪。

这样,你可以说你想要允许什么。

希望它有所帮助。