본문 바로가기

개발(합니다)/방법론

java와 javascript 정규 표현식 주의점 및 사용법

반응형

스프링 유효성 검사를 하던 중에 정규 표현식의 차이점이 있어서 정리합니다.


정규 표현식 주의할 점

javascript에서는 \s, \b 와 같이 '\'를 하나씩 사용합니다.

java에서는 \\s, \\b와 같이 '\'를 두개로 사용합니다.


javascript

var blank = /[\s]/g;


java

@Pattern(regexp = "^[가-힣]+[가-힣\\s]*$")


- javascript에서 정규표현식 모음

/*var localPhone = /^(0(2|3[1-3]|4[1-4]|5[1-5]|6[1-4]))-(\d{3,4})-(\d{4})$/;
var cellPhone = /^(?:(010-\d{4})|(01[1|6|7|8|9]-\d{3,4}))-(\d{4})$/;*/
var localPhone = /^(0(2|3[1-3]|4[1-4]|5[1-5]|6[1-4]))(\d{3,4})(\d{4})$/;
var cellPhone = /^(?:(010\d{4})|(01[1|6|7|8|9]-\d{3,4}))(\d{4})$/;
var number = /[0-9]/;
var unsignedInt = /^[1-9][0-9]*$/;
var notNumber = /[^(0-9)]/gi;
var korea_cv = /[ㄱ-ㅎ|ㅏ-ㅣ]/;
var korea = /[가-힣]/;
var koreaName = /[가-힣]/;
var special_char = /[\{\}\[\]\/?.,;:|\)*~`!^\-+<>@\#$%&\\\=\(\'\"]/;
var comma_char = /,/g;
var english = /[a-z | A-Z]/;
var blank = /[\s]/g;
var carno = /^[0-9]{2}[\s]*[가-힣]{1}[\s]*[0-9]{4}$/;
var old_carno = /^[가-힣]{2}[\s]*[0-9]{2}[\s]*[가-힣]{1}[\s]*[0-9]{4}$/;
var password =/^.*(?=.{6,20})(?=.*[0-9])(?=.*[a-zA-Z]).*$/;
var email =/([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)
|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
var domain_all =/([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)
|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
var domain_include = /^((http(s?))\:\/\/)([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?$/;
var domain_exclude = /^[^((http(s?))\:\/\/)]([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?$/;
var id_check = /^[a-z | A-Z]{3,6}[0-9]{3,6}$/;
var ko_en_num_charactor = /^[가-힣a-zA-Z0-9]*$/;
var ko_en_charactor = /^[가-힣a-zA-Z]*$/;



- java에서 정규표현식 예시

    @Pattern(regexp = "^[a-z | A-Z]{3,6}[0-9]{3,6}$")
    private String user_id;
    
    @Pattern(regexp="^.*(?=.{6,20})(?=.*[0-9])(?=.*[a-zA-Z]).*$")
    private String password;

    @Pattern(regexp = "^(01[1|6|7|8|9|0])-(\\d{3,4})-(\\d{4})$")
    private String phone;

    @Pattern(regexp = "^[가-힣]{2,6}$")
    private String name;

    @Pattern(regexp = "^[가-힣]+[가-힣\\s]*$")
    private String address;




정규 표현식 사용법


표현식 

설명 

 ^ 

 정규 표현식의 시작 

 $

 정규 표현식의 종료 

.

 임의의 한 문자(모든 문자) / 정확히 1개 문자 매칭

 * 

 히든 카드, 없을 수도 많을 수도 있음 / 0회 이상

 + 

 앞 문자가 하나 이상 / 1회 이상

 ? 

 앞 문자가 없거나 하나 / 0 또는 1개의 문자 매칭

 [ ] 

 문자의 집합이나 범위를 나타내고'-'기호로 범위 표현

 { } 

 횟수나 범위 

 ( ) 

 괄호 안에 문자를 하나의 문자로 인식 

 |

 패턴 안에서 'or' 연산을 수행 

 \s, \\s 

 공백 문자 포함 

 \S, \\S 

 공백 문자가 아닌 나머지 문자 

 \w, \\w 

 알파벳이나 숫자와 '_' 문자 

 \W, \\W

 알파벳이나 숫자와 '_' 문자가 아닌 문자 

 \d, \\d 

 숫자 [0-9]와 동일 

 \D, \\D 

 숫자가 아닌 모든 문자 

 \, \\ 

 정규 표현식에서 확장 문자 

 g 

 전체적으로 매칭

 i 

 대소문자 무시

 m

 여러 줄 매칭 


반응형