Naa*_*aaN 31 regex email-validation primefaces jsf-2
我有一个输入字段,带有一个电子邮件地址:
<h:inputText value="#{register.user.email}" required="true" />
Run Code Online (Sandbox Code Playgroud)
如何在JSF 2/PrimeFaces中使用正则表达式将输入的值验证为有效的电子邮件地址?
Bal*_*usC 50
所有正则表达式尝试基于拉丁字符验证电子邮件格式都会被破坏.它们不支持自2010年5月以来可用的国际化域名.是的,您正确读取,非拉丁字符从那时起允许在域名中使用,因此也允许使用电子邮件地址.
因此,要验证的是非常多的可能字符.最好是保持简单.以下正则表达式仅根据@和.字符的出现验证电子邮件格式.
<f:validateRegex pattern="([^.@]+)(\.[^.@]+)*@([^.@]+\.)+([^.@]+)" />
Run Code Online (Sandbox Code Playgroud)
同样,这只是验证了一般的电子邮件格式,而不是电子邮件本身是否合法.仍然可以输入aa@bb.cc地址并通过验证.没有一个正则表达式可以涵盖这一点.如果电子邮件地址的有效性非常重要,请将其与身份验证系统相结合.只需发送一些带有回调链接的激活电子邮件到相关的电子邮件地址,并让用户通过电子邮件地址登录.
Dan*_*iel 45
方法如下:
自己用它...
<h:inputText id="email" value="#{settingsBean.aFriendEmail}" required="true" label="Email" validatorMessage="#{settingsBean.aFriendEmail} is not valid">
<f:validateRegex pattern="[\w\.-]*[a-zA-Z0-9_]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]" />
</h:inputText>
<p:message for="email" />
Run Code Online (Sandbox Code Playgroud)
丹尼尔.
mky*_*ong 10
这是我的版本,效果很好:
<f:validateRegex pattern="^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$" />
Run Code Online (Sandbox Code Playgroud)
我在这里做了一个演示
| 归档时间: |
|
| 查看次数: |
46093 次 |
| 最近记录: |