반응형
정규식 UnicodeBlock을 이용하여 입력을 제한할 수 있다.
docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html
POSIX character classes (US-ASCII only)
\p{Lower} | A lower-case alphabetic character: [a-z] |
\p{Upper} | An upper-case alphabetic character:[A-Z] |
\p{ASCII} | All ASCII:[\x00-\x7F] |
\p{Alpha} | An alphabetic character:[\p{Lower}\p{Upper}] |
\p{Digit} | A decimal digit: [0-9] |
\p{Alnum} | An alphanumeric character:[\p{Alpha}\p{Digit}] |
\p{Punct} | Punctuation: One of !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ |
\p{Graph} | A visible character: [\p{Alnum}\p{Punct}] |
\p{Print} | A printable character: [\p{Graph}\x20] |
\p{Blank} | A space or a tab: [ \t] |
\p{Cntrl} | A control character: [\x00-\x1F\x7F] |
\p{XDigit} | A hexadecimal digit: [0-9a-fA-F] |
\p{Space} | A whitespace character: [ \t\n\x0B\f\r] |
숫자만 입력 가능한 경우
[0-9] , [\\p{Digit}]
String regex = "[0-9]+";
boolean result = Pattern.matches(regex, "12345");
assertThat(result, equalTo(true));
result = Pattern.matches(regex, "12345A");
assertThat(result, equalTo(false));
regex = "[\\p{Digit}]+";
result = Pattern.matches(regex, "12345");
assertThat(result, equalTo(true));
result = Pattern.matches(regex, "12345A");
assertThat(result, equalTo(false));
\p{InGreek} | A character in the Greek block (block) |
위 처럼 UnicodeBlock 을 이용할 수 있다.
아래 두개의 정규식은 동일하게 동작한다.
regex = "[가-힣]+";
regex = "[\\p{InHANGUL_SYLLABLES}]+";
String reg1 = "[가-힣]+";
String reg2 = "[\\p{InHANGUL_SYLLABLES}]+";
String passStr = "가나다";
String errorStr = "ㄱ가나다";
assertThat(Pattern.matches(reg1, passStr), equalTo(true));
assertThat(Pattern.matches(reg2, passStr), equalTo(true));
assertThat(Pattern.matches(reg1, errorStr), equalTo(false));
assertThat(Pattern.matches(reg2, errorStr), equalTo(false));
UnicodeBlock에 들어가는 문자는 아래 URL에서 확인이 가능하다.
www.unicode.org/charts/
영어,숫자,한국어(자음모음 제외),태국어, 중국어를 허용하는 정규식
regex="[\\p{Alpha}\\p{Digit}\\p{InHANGUL_SYLLABLES}\\p{InThai}\\p{InCJK_UNIFIED_IDEOGRAPHS}\\p{InCJK_COMPATIBILITY_IDEOGRAPHS}]"
반응형
'java' 카테고리의 다른 글
springboot common properties (0) | 2022.05.03 |
---|---|
bootJar task에 css, javascript minified 적용 (2) | 2022.03.24 |
Unicode String escape unescape (0) | 2020.12.07 |
톰캣 jsp 빈줄 제거 (0) | 2020.11.25 |
redirect http to https (response.sendRedirect) (0) | 2020.11.25 |