0
 <p:inputText id="username" value="#{personBean.username}" required="true" label="username">  
                <f:validateRegex pattern="((?=.*\d)(?=.*[a-z])(?=.*[@#$%]))" />
 </p:inputText>  

上述正则表达式模式至少需要一个数字、一个字母和一个特殊符号(“@#$%”)。

当输入的模式不正确时会显示错误消息,即使输入的模式正确也会显示错误。

4

1 回答 1

0

请尝试以下正则表达式模式:

(?=.*?\d)(?=.*?[A-z])(?=.*?[@#$%])+

首先,您错过了大写字符的一部分,然后您错过了+最后的部分,因此它只会验证您是否有一个字符并且该字符是否属于指定类型之一。

于 2013-07-30T11:14:50.510 回答