JSF 电子邮件验证 - 不允许接受 yahoo、gmail 等域
JSF Email Validation - Do not allow domains like yahoo, gmail, etc to be accepted
我已经有一个电子邮件验证器,可以正常工作,以正则表达式的形式检查电子邮件的格式。
现在 - 我想在 Java 中编写另一个电子邮件验证器(因为我的应用程序是在 JSF、Glassfish 3.x 上),不允许非政府电子邮件 在文本框中输入。不应接受雅虎、gmail、hotmail 等所有域。
它应该只接受基于印度政府域的电子邮件 - @gov.in
、@nic.in
- 所有其他电子邮件都应该被拒绝,并且应该适当地通知用户。
请求这方面的帮助。提前致谢。
我根据规范制作电子邮件验证器:
EmailValidator.java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.FacesValidator;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;
@FacesValidator("com.lucio.EmailValidator")
public class EmailValidator implements Validator {
private static final String EMAIL_PATTERN = "^[_A-Za-z0-9-]+(\.[_A-Za-z0-9-]+)*@(gov|nic)(\.in)$";
private Pattern pattern;
private Matcher matcher;
public EmailValidator(){
pattern = Pattern.compile(EMAIL_PATTERN);
}
@Override
public void validate(FacesContext context, UIComponent component,
Object value) throws ValidatorException {
matcher = pattern.matcher(value.toString());
if(!matcher.matches()){
FacesMessage msg =
new FacesMessage("E-mail validation failed.",
"Invalid E-mail acepted only @gov.in or @nic.in");
msg.setSeverity(FacesMessage.SEVERITY_ERROR);
throw new ValidatorException(msg);
}
}
}
使用:
<h:inputText id="email" value="#{user.email}"
label="Email Address">
<f:validator validatorId="com.lucio.EmailValidator" />
</h:inputText>
我已经有一个电子邮件验证器,可以正常工作,以正则表达式的形式检查电子邮件的格式。
现在 - 我想在 Java 中编写另一个电子邮件验证器(因为我的应用程序是在 JSF、Glassfish 3.x 上),不允许非政府电子邮件 在文本框中输入。不应接受雅虎、gmail、hotmail 等所有域。
它应该只接受基于印度政府域的电子邮件 - @gov.in
、@nic.in
- 所有其他电子邮件都应该被拒绝,并且应该适当地通知用户。
请求这方面的帮助。提前致谢。
我根据规范制作电子邮件验证器:
EmailValidator.java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.FacesValidator;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;
@FacesValidator("com.lucio.EmailValidator")
public class EmailValidator implements Validator {
private static final String EMAIL_PATTERN = "^[_A-Za-z0-9-]+(\.[_A-Za-z0-9-]+)*@(gov|nic)(\.in)$";
private Pattern pattern;
private Matcher matcher;
public EmailValidator(){
pattern = Pattern.compile(EMAIL_PATTERN);
}
@Override
public void validate(FacesContext context, UIComponent component,
Object value) throws ValidatorException {
matcher = pattern.matcher(value.toString());
if(!matcher.matches()){
FacesMessage msg =
new FacesMessage("E-mail validation failed.",
"Invalid E-mail acepted only @gov.in or @nic.in");
msg.setSeverity(FacesMessage.SEVERITY_ERROR);
throw new ValidatorException(msg);
}
}
}
使用:
<h:inputText id="email" value="#{user.email}"
label="Email Address">
<f:validator validatorId="com.lucio.EmailValidator" />
</h:inputText>