在jsf正则表达式验证期间允许ascii字符

时间:2013-05-28 02:58:26

标签: java regex email jsf validation

我有这段代码来验证电子邮件地址,我认为它适用于正常情况

<h:inputText id="email" value="#{myBean.email}"
        required="true">
    <f:validateRegex pattern="[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}" />
</h:inputText>

但如果有人输入此示例电子邮件

lòmbardi.Çorneliö@mymail.com

..正则表达式失败。

问题,有没有办法让验证器允许其他ascii字符?

感谢。

1 个答案:

答案 0 :(得分:2)

只是不要验证A-Z范围内的拉丁字符。这使得since May 2010不再有意义,因为实际上域名中允许任何unicode字符。最好只验证@.字符的出现次数。

<f:validateRegex pattern="([^.@]+)(\.[^.@]+)*@([^.@]+\.)+([^.@]+)" />

另见: