특정 조건을 만족하는 비밀번호인지 검증하는 Java 코드
보통 회원가입이나 로그인할때, 입력하는 비밀번호가 정해진 형태를 만족하는지 체크하는 경우가 많다.
예를 들어 대문자와 특수문자는 무조건 1개 이상 들어가야 한다던지, 아이디와 같은 비밀번호를 입력해서는 안된다던지, 하는 조건들을 검증하는 것이다.
추가로 비밀번호 뿐만 아니라, 이메일에서도 사용될 수 있는데, 이메일 형태인지를 검증하는 경우도 지정할 수 있다.
ex) xxxxx@xxxxx.xxx 와 같은 형태를 만족해야 한다/ 라는 조건을 충족하는지 확인할 수 있다.
비밀번호 조건 만족여부 검증 자바 코드
조건 : 숫자 1개, 대소문자 1개씩, 최소길이는 5 이상이여야 한다.
private static boolean checkPassword(String s) {
boolean result = false;
//정규표현식 숫자최소1개,대소문자 최소1개,최소길이5이상
String regExp = "^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).{5,}$";
//System.out.println("s 정규표현식 적용 결과 ==> "+s.matches(regExp));
result=s.matches(regExp);
return result;
}
public static void main(String[] args) {
System.out.println(checkPassword("8eqq") == true);
System.out.println(checkPassword("8eqqQ") == true);
System.out.println(checkPassword("password1") == true);
System.out.println(checkPassword("Password1") == true);
실행결과
false true false true |
이메일인지 검증하는 Java 코드
조건
- 이메일 주소의 첫 부분은 하나 이상의 문자, 숫자 또는 하이픈이있어야 한다.
- 점(.)과 그 뒤에 하나 이상의 문자, 숫자 또는 하이픈이 올 수 있는데, 이 패턴이 0번 이상 반복될 수 있다.
- 1,2 다음에는 @ 기호가 있어야 한다.
- @ 뒤에는 하나 이상의 문자, 숫자 또는 하이픈이 있어야 한다.
- 4 이후 점(.)과 그 뒤에 하나 이상의 문자, 숫자 또는 하이픈이 올 수 있는데, 이 패턴이 0번 이상 반복될 수 있다.
- 이메일 주소의 마지막 부분은 점(.)과 그 뒤에 두 개 이상의 알파벳이 있어야 한다.
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void checkEmail(String email) {
String regex = "^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)*(\\.[a-zA-Z]{2,})$";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(email);
if(matcher.find()) {
System.out.println(email + "은 유효한 이메일 주소입니다.");
} else {
System.out.println(email + "은 유효하지 않은 이메일 주소입니다.");
}
}
public static void main(String[] args) {
checkEmail("example@example.com");
checkEmail("example.example@example.com");
checkEmail("example@com");
checkEmail("example@@example.com");
}
}
실행결과
유효한 이메일
유효한 이메일
유효하지 않은 이메일 (도메인 부분이 불완전합니다)
유효하지 않은 이메일 (@가 중복되었습니다)
728x90
반응형
'프로그래밍 > Java' 카테고리의 다른 글
[Java / Java의 정석 / 자바 기초] 문자열을 쉬프트 하기(+쉬프트한 문자열 비교하기) (1) | 2024.01.09 |
---|---|
[Java / 자바 기초 / 자바의 정석] -와 +가 쌍으로 이루어진 값의 최대값 출력 (1) | 2024.01.05 |
[내가 이해하기 위한 용어정리] Restfull API란? (1) | 2023.12.26 |
[JAVA / 자바 / 자바 기초] 배열 랜덤 생성 + 랜덤하게 섞기 (0) | 2023.12.14 |
[JAVA / 자바 / 자바 기초] 정수 배열 사이 값 구하기 + 카운트 -문제 (0) | 2023.12.13 |