- 사용자한테 이름, 전화번호 정보를 얻고자 할때
- 이름은 한글, 전화번호는 숫자로 이루어짐
- 이름에 영어입력이 없고 전화번호에 숫자외의 입력이 없도록
- 데이터의 검증 >> 이때 필요한게 정규표현식
- 숫자 : "^[0-9]*$"
- 영문 : "^[a-zA-Z]*$"
- 한글 : "^[ㄱ-ㅎ가-힣]*$"
- 영문+숫자 : "^[a-zA-Z0-9]*$"
- 한글+숫자 : "^[ㄱ-ㅎ가-힣0-9]*$"
- 이메일형식 : "^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$"
- 핸드폰번호 : "^01(?:0|1|[6-9])(?:\\d{3}|\\d{4})\\d{4}$"
- 전화번호 : "^\\d{2,3}\\d{3,4}\\d{4}$"
- 주민번호 뒷자리 첫글자가 1~4 범위에 있는지 여부
: "^\\d{6}[1-4]\\d{6}"
* : 반복 여부(설정한 범위만큼 문자열검사)
^ : 문자열 시작
$ : 문자열 종료
✔ 핸드폰번호 전화번호는 "-"없는 것에 대한 확인
✔ 복사 붙여넣기 해서 쓰기
< 출처 : https://hamait.tistory.com/342 >
//숫자로만 이루어졌어? (t/f) 판별 = boolean
boolean java.utill.regex.Pattern.matches(
String arg0, CharSequence arg1
);
- arg0 : 정규표현식 문자열
- arg1 : 형식을 검사받기 위한 내용
- 즉, 위의 기능 arg1이 arg0의 형식에 맞는지를 검사하고
결과를 boolean으로 리턴한다.
import java.util.regex.Pattern;
Pattern.matches(
String arg0, CharSequence arg1
);
<<< 예시 >>>
//회원가입 시 사용할 변수
String name = "자바학생";
String age = "19살";
//한글여부
boolean isKor =
Pattern.matches("^[ㄱ-ㅎ가-힣]*$", name);
// isKor이 true면 한글로 잘 만든 것 -> 한글이 아니면 조건문 충족
if( !isKor ) {
System.out.println("이름은 한글로 입력해주세요.");
return;
}
// 나이 숫자여부
boolean isNum =
Pattern.matches("^[0-9]*$", age);
if( !isNum ) {
System.out.println("나이는 숫자로 입력해주세요.");
return;
}
System.out.println("회원가입 절차를 진행합니다.");
//출력 :
나이는 숫자로 입력해주세요.