Maj*_*ico 2 regex validation primefaces jsf-2
我用下面的正则表达式用于验证工作正常的电子邮件地址,但我需要验证字符之前的长度@
,应不小于4个字符。我应该为@
dot 前后的字符长度设置相同的规则.
。
例如,这个电子邮件地址是不合法的:一个公元前@
但是,这个应该是有效的:abcd@abcd.com
我该怎么做?
这是我目前的尝试:
<ui:define name="validation-tag">
<f:validateRegex
pattern="([\w\.-]*[a-zA-Z0-9_]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z])*"
for="contactEmailAddress" />
</ui:define>
Run Code Online (Sandbox Code Playgroud)
我们可以使用带有锚点的正向预测来施加长度限制。
^(?=[^@]{4,}@)([\w\.-]*[a-zA-Z0-9_]@(?=.{4,}\.[^.]*$)[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z])$
Run Code Online (Sandbox Code Playgroud)
在^
和$
将在开始和结束的字符串匹配,那么(?=[^@]{4,}@)
将确保我们至少有4个字符之前的第一@
,并(?=.{4,}\.[^.]*$)
会确保部分之前的最后一个.
是至少4个符号。
看演示