[android] 알파벳, 숫자, 특수문자만 들어있는지 검사하기

String str = "abAB12!@#~`!@#$%^&*()_+=-|][}{;:"
boolean chk = Pattern.matches("^[a-zA-Z0-9!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?~`]+$", str);
Log.i("###", chk ? "통과" : "실패");

 

도움 받은 곳 :

http://www.androidpub.com/1846129

http://stackoverflow.com/questions/13946651/matching-special-characters-and-letters-in-regex

 

 


특수문자가 있는지 검사하는 건 이렇게 하면 된다.

public static boolean hasSpecialCharacter(String string) {
  if (TextUtils.isEmpty(string)) {
    return false;
  }

  for (int i = 0; i < string.length(); i++) {
    if (!Character.isLetterOrDigit(string.charAt(i))) {
      return true;
    }
  }

  return false;
}