私は電話番号でいくつかの検証を行おうとしていますが、設定されたサイズの数字だけの検証を行う方法は理解しています。このタスクは少しトリッキーです
ユーザーの電話番号を検証する必要がありますが、以下に示すいずれかの形式である必要があります (スペースは重要ではありません)。
+44 (23) 92846438
(023) 92846438
上記の電話番号のすべての組み合わせに対して検証するカスタム検証を作成するにはどうすればよいですか?
ありがとう
私はバッキングビーンを作成し、それを通して検証しようとしました
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}$";
もしそうなら、どうすれば両方の方法をチェックすることができますか
編集、私は上記を試しましたが、うまくいきません。私は正しい行にいると思いますが、正しい組み合わせを得ることができません