본문 바로가기

JavaScript

JavaScript 정규표현식 특징

    <script>
        // 정규표현식으로 검증할 문자열
        const str = "abcabcabc";

        // 생성하는 방법 1
        const reg1 = /a/; // 슬레시 안에 작성한 문자열이 정규표현식이다.

        // 생성하는 방법 2
        const reg2 = new RegExp("a"); // 따옴표안에 작성한 문자열이 정규표현식이다.

        // 사용하는 함수 test, exec
    </script>

JavaScript 에서 사용하는 정규표현식이다. 

 

javascript 에서는 주로 .test, .exec 를 사용한다.

.test 는 boolean type의 값을 리턴해주고

.exec 는 Array 배열을 리턴해준다.

 

정규표현식의 사용법칙)

 

1. 정규표현식은 대소문자를 구별한다.

 

2. 눈에 보이지 않는 space, tab, new line 기호도 정확히 일치해야한다.

 

3. ^는 매칭할 문자열의 시작을 의미한다. $는 매칭할 문자열의 끝을 의미한다.

 

4. 만일 특별한 의미를 가지고 있는 문자열의 literal 값이 필요하다면 역슬레시(\) 를 앞에 붙여 줘야한다.

 

5. (.)점은 모든 문자를 의미한다.

 

6. (.)점의 literal 값이 필요하다면 역슬레시(\) 가 필요하다.

 

7. [ ] 대괄호 안에는 매칭될수 있는 문자의 목록을 넣는다. 목록의 순서는 중요하지 않다.

 

8. 문자의 범위는 [-] 문법으로 나타낼수 있다. 여러가지 범위도 case5번 처럼 하나의 표현식으로 쓸수있다.

 

9. [ ] => 문자 클래스

    문자 클래스 안에 [^abc] 처럼 첫문자로 ^ 가 있다면 a,b,c 각각은 매칭하지 않을 문자 목록이 된다.

 

10. 문자열을 교차 매칭 시키려면 소괄호 안에 | 로 구분해서 문자열을 나열하면 된다. (문자열1|문자열2|문자열3)

 

11. 수량자(Quantifiers) : *, +, ?

      수량자는 문자가 몇번 올수 있는지 정의한다.

      * : 0번이상 (없어도 되고 여러개가 있어도 된다.)

      + : 1번이상 (반드시 있어야 하며 여러개가 있어도 된다.)

      ? : 0번 또는 1번 (없어도 되고 있다면 오직 한개만 허용)

 

12. 수량자 *의 사용 예 (0번 이상)

 

13. 수량자 + 의 사용 예 (1번이상 (없으면 안됨))

 

14. 수량자 ? 의 사용 예 (0번 또는 1번 (있어도 한번만 가능))

 

15. { }는 정확한 문자의 반복횟수를 정의한다.

      { m } 는 m 번 반복 (Case 1)

      { m,n } 는 최소 m 번 최대 n번 반복

      { m, } 는 최소 m 번 반복

 

16. * 는 { 0, } 와 같다

      + 는 { 1, } 와 같다

      ? 는 { 0,1 } 와 같다