리터럴 정규식(/.../)
- 정규식 리터럴은 고정된 정규식을 작성할 때 사용한다
- 코드가 간결하며, 컴파일 단계에서 정규식을 바로 생성한다
const regex = /^\d+(\.\d{1,2})?%/;
new RegExp()
- 문자열로 정규식을 생성하며, 런타임에 동적으로 정규식을 만들 때 유용하다
- 문자열로 전달하기 때문에, 역슬래시( \ )를 두 번( \\ ) 사용해야 한다
const decimalPlaces = 2;
const regex = new RegExp(`^\\d+(\\.\\d{1,${decimalPlaces}})?$`);
특수 문자 처리
리터럴 정규식
- 정규식의 특수 문자( \d, \w, \s 등)를 사용할 때, 이스케이프 처리가 간단하다
new RegExp()
- 정규식 문자열을 전달하기 때문에, 역슬래시를 두 번 사용해야 정규식으로 인식된다
- 예를 들어, \d 를 표현하려면 \\d 로 작성해야 한다
const regex = new RegExp('^\\d+(\\.\\d{1,2})?$');
성능
리터럴 정규식
- 정규식 리터럴은 스크립트가 로드될 때 컴파일되므로 더 빠르다
- 동일한 정규식을 반복적으로 사용해야할 경우 유리하다
new RegExp()
- 런타임에 정규식을 생성하므로 약간의 성능 비용이 추가된다
- 현대 브라우저에서 이 차이는 거의 무시할 수 있을 정도로 작다
특징 | 리터럴 정규식 ( /.../ ) | new RegExp() |
작성 방법 | 정규식 리터럴 사용 ( /.../ ) | 문자열로 정규식 생성 ( new RegExp ) |
동적 생성 가능 여부 | 불가능 | 가능 |
특수 문자 처리 | 간단 ( \d, \w 등 그대로 사용) | 역슬래시 두 번 사용해야 함 ( \\d ) |
성능 | 더 빠름 (컴파일 시 정규식 생성) | 런타임에 정규식 생성으로 약간 느림 |
사용 예 | 고정된 정규식 | 동적 정규식 생성 필요 시 |
'JavaScript' 카테고리의 다른 글
[JavaScript] jQuery (3) | 2024.11.17 |
---|---|
[JavaScript] 자료구조 (0) | 2024.11.16 |
[JavaScript] 정규식 (0) | 2024.11.16 |
[JavaScript] this (2) | 2024.11.10 |
[JavaScript] == (느슨한 비교) 와 === (엄격한 비교) (0) | 2024.11.09 |