본문 바로가기
프로그래밍/Java Script

Java Script - 정규 표현식 RegExp

by 3.14pie 2022. 12. 13.

정규 표현식 - 특정 패턴의 문자열을 찾기 위한 표현 방식이다.

 

/world/i - 대소문자 구분 없이 검색할 수 있다.

/world/ig - 모든 world 라는 단어를 찾을 수 있다. g가 없을 경우 맨 처음 찾은 world만 해당한다.

        let str = "A Whole New World";
        let patt = /[wea]/g;
        let result = str.match(patt);

        console.log(result);

/[wea]/g - [ ] 안에 있는 w나 e나 a를 찾는다. match를 이용하면 배열형태로 결과를 반환한다. 패턴을 만들어 적용할 수 있다.

[0-9] 는 0부터 9까지의 모든 숫자를 의미한다. /\d/ 도 같은 역할을 한다.

        let str2 = "ba, banana, app, apple, grape";
        let patt2 = /(banana|apple)/g;
        let result2 = str2.match(patt2);
        console.log(result2);

/[banana|apple]/g - | 는 or의 개념으로 'banana' 나 'apple' 단어를 찾는다.

/\s/ - 공백을 찾는다.

        let str3 = "I want apple, not a pineapple";
        let patt3 = /\bapp/g;
        let result3 = str3.search(patt3);
        console.log(result3);

/\b/ - 해당 문자열로 시작하는 단어를 찾는다. apple은 찾을 수 있지만 pineapple은 찾지 못한다.

        let str4 = "cherry, orange";
        let patt4 = /r+/g;
        console.log(str4.match(patt4));

        let patt4_1 = /ry*/g;
        console.log(str4.match(patt4_1));

        let patt4_2 = /er?/g;
        console.log(str4.match(patt4_2));

/+/ - 최소한 r이 한개 이상인 것을 찾는다. 결과 : ['rr', 'r']

/*/ - 0개 혹은 n개를 찾는다. 결과 : ['r', 'ry', 'r']

/?/ - 0개 혹은 1개를 찾는다. 결과 : ['er', 'e']

        let str5 = "52461";
        let patt5 = /^\d{5}$/;
        console.log(patt5.test(str5));

숫자가 5개인지 확인하는 정규 표현식이다. test는 정규 표현식의 내장 함수이므로 patt5.test로 사용해야 한다. true, false로 결과가 나온다.

^ - 뒤의 표현식으로 시작하는 것을 찾는다는 의미이다. 즉, 처음이 숫자 5개로 시작해야 한다. (ex. d55416 은 false)

$ - 앞의 표현식으로 끝나는 것을 찾는다는 의미이다. 즉, 뒤에 다른 문자가 오면 안된다. (ex. 54167d 는 false)

        let patt6 = /^(010)-\d{4}-\d{4}$/;
        let patt7 = /^\w+([\.-]?\w+)*@\w+(\.\w{2,3})+$/;

patt6은 전화번호를 확인하는 정규 표현식이다. '010'이라는 문자로 시작하고 다음에는 '-' 가 오고 4자리의 숫자, '-', 4자리의 숫자로 끝나는 패턴을 확인하는 것이다.

patt7은 이메일을 확인하는 정규 표현식이다. /w는 문자를 나타낸다.

문자로 시작하고, \.-는 특수 문자를 일반 문자열로 바꿔주는 역할을 한다. 즉, . 이나 - 가 들어갔는지 찾고 그 다음에 문자가 1개 이상 인 것을 찾는다. 그리고 @가 들어가고 다시 문자가 1개 이상, 다시 . 을 일반 문자로 바꿔주고 문자가 2개나 3개 오는 것을 찾는다. 그리고 끝나야 한다.