我正在尝试对电话号码进行一些验证,尽管我了解如何仅对固定大小的数字进行验证此任务有点棘手
我需要对用户的电话号码进行验证,但它必须采用如下所示的任何一种格式(空格不重要):
+44 (23) 92846438
(023) 92846438
我将如何创建一个自定义验证来验证上述电话号码的所有组合?
谢谢
我已经尝试创建一个支持 bean 并通过它进行验证
public class PhoneValidator implements Validator{
private static final String phone_PATTERN = "^[0-9-]{12,15}$";
private Pattern pattern;
private Matcher matcher;
public UserNameValidator(){
pattern = Pattern.compile(phone_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("Phone validation failed",
"Invalid phone number.");
msg.setSeverity(FacesMessage.SEVERITY_ERROR);
throw new ValidatorException(msg);
}
}
}
像这样的工作:
private static final String phone_PATTERN = "^[+][44][(0-9)][0-9-]{12,15}$";
如果是这样,我怎样才能检查这两种方法
编辑,我已经尝试了上述方法,但它不起作用,我想我在这里是正确的,只是无法正确组合