프로젝트 제작중 입력 형식이 이메일이 맞는지, 전화번호 형식이 맞는지 확인해야 할 때가 있다.
프론트 단, 혹은 입력하는 사람이 믿고 넘겨줄수 있다고 생각할 수도 있겠지만, 만약에 아닐 경우에 대비하여 한번 정규표현식을 통해 이메일이 맞는지 체크하는 코드를 한번 만들어보자.
public class EmailValidator {
private static final String EMAIL_REGEX =
"^[a-zA-Z0-9_+&*-]+(?:\\." +
"[a-zA-Z0-9_+&*-]+)*@" +
"(?:[a-zA-Z0-9-]+\\.)+[a-z" +
"A-Z]{2,7}$";
public static boolean isValidEmail(String email) {
Pattern pattern = Pattern.compile(EMAIL_REGEX);
Matcher matcher = pattern.matcher(email);
return matcher.matches();
}
}
정규식의 각종 기호에 대하여 간단히 정리해보자면 다음과 같다.
^ : 시작표시(매칭이 처음부터 되어야 함)
$ : 끝표시(문자열 끝에 매칭되어야 함)
[] : 문자열 셋
[ab][a-z][0-9] 라고 써주면 첫글자는 a또는 b이고 그 다음에 a~z가 나오고 그 뒤에 0~9가 나온다는 뜻..
[]안에서 ^쓰면 그 문자가 아닌것들