Java 정규표현식으로 문자, 숫자, 특수문자의 조합 패턴 체크
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
package test; public class passwordvalidation { public passwordvalidation() { // TODO Auto-generated constructor stub } public static void main(String[] args) throws Exception { String passwd = "TEST1#$@"; String dLginId = "userid"; if(passwd.indexOf("\'") != -1){ System.out.println("\' 포함할수없습니다."); } if(passwd.indexOf("\"") != -1){ System.out.println("\" 포함할수없습니다."); } if(passwd.indexOf("\\") != -1){ System.out.println("\\ 포함할수없습니다."); } if(passwd.indexOf("|") != -1){ System.out.println("| 포함할수없습니다."); } // 영문+숫자+특수문자 조합 if (digitCheck(passwd) < 3) { System.out.println("영문+숫자+특수문자 조합으로 입력해주세요."); } //아이디 포함 여부 if(passwd.indexOf(dLginId) != -1){ System.out.println("패스워드에 아이디가 포함되어있습니다."); } //중복된 3자 이상의 문자 또는 숫자 사용불가 if (checkDuplicate3Character(passwd)) { System.out.println("중복된 3자 이상의 문자 사용불가입니다."); } } public static boolean checkDuplicate3Character(String d) { int p = d.length(); byte[] b = d.getBytes(); for (int i = 0; i < ((p * 2) / 3); i++) { int b1 = b[i + 1]; int b2 = b[i + 2]; if ((b[i] == b1) && (b[i] == b2)) { return true; } else { continue; } } return false; } public static int digitCheck(String passwd) { int varDigit = 0; int varAlpha = 0; int varHex = 0; int varSum = 0; for (int i = 0; i < passwd.length(); i++) { char index = passwd.charAt(i); if (index >= '0' && index <= '9') { varDigit = 1; } else if ( (index >= 'a' && index <= 'z') || (index >= 'A' && index <= 'Z') ) { varAlpha = 1; } else if (index == '!' || index == '@' || index == '$' || index == '%' || index == '^' || index == '&' || index == '*') { varHex = 1; } } varSum = varDigit + varAlpha + varHex; return varSum; } } |