반응형
정규 표현식(Regular Expression)
정규표현식은 문자열에서 특정 내용을 찾거나 대체 또는 발췌하는데 사용한다.
예를 들어, 회원가입 화면에서 사용자로부터 입력받은 전화번호가 유효한지 체크할 필요가 있다.
이 때, 정규표현식을 사용하면 간단히 처리할 수 있다.
정규 표현식 만들기
// 1.
var re = /ab+c/;
// 2.
var re = new RegExp("ab+c");
정규식 리터럴(1번 방법)은 스크립트가 불러와질 때 컴파일 됩니다.
만약, 정규식이 상수라면, 이렇게 사용하는 것이 성능을 향상시킬 수 있습니다.
2번 방법은 RegExp 객체의 생성자 함수를 호출하는 방법입니다. 생성자 함수를 사용하면 정규식이 실행 시점에 컴파일됩니다.
정규식의 패턴이 변경될 수 있는 경우, 혹은 사용자 입력과 같이 다른 출처로부터 패턴을 가져와야 하는 경우에는 생성자 함수를 사용하는 것이 좋다.
- 정규 표현식 매칭 패턴 아래 매칭 패턴을 사용하면 문자/숫자/기호를 표현할 수 있다.
Character | Meaning |
a-zA-Z | 영어 알파벳(-로 범위 지정) |
0-9 | 숫자(-로 범위 지정) |
ㄱ-ㅎ가-힣 | 한글 문자(-로 범위 지정 |
. | 모든 문자열(숫자, 한글, 영어, 특수 기호, 공백 모두 단, 줄바꿈 안됨 |
\d | 숫자 |
\D | 숫자가 아닌 모든 것 |
\w | 영어 알파벳, 숫자, 언더 스코어(_) |
\W | \w가 아닌 모든 것 |
\s | space 공백 |
\S | sapce 공백이 아닌 모든 것 |
\특수기호 | 특수 기호 |
\w(소문자) \W(대문자)둘은 반대이다.
- 정규 표현식 검색 패턴 아래 패턴을 사용하면 AND, OR, StartWith, EndWith 등의 다양한 조합을 만들 수 있다.
Character | Meaning |
` | ` |
[] | 괄호 안의 문자들 중 하나 |
[^문자] | 괄호 안의 문자를 제외한 것 |
^문자열 | 특정 문자열로 시작 |
문자열$ | 특정 문자열로 끝남 |
() | 그룹 겁색 및 분류 |
(?:패턴) | 그룹 검색(분류x) |
\b | 단어의 처음/끝 |
\B | 단어의 처음/끝이 아님 |
- 정규 표현식 갯수(수량) 패턴 특정 패턴이 몇번 반복되는지도 필터링 가능
Chracter | Meaning |
? | 최대 한번(없거나 한개) |
* | 없거나 있거나(여러개 포함) |
+ | 최소 한 개(여러개 포함) |
{n} | n개 |
{Min,} | 최소 Min개 이상 |
{Min, Max} | 최소 Min개 이상, 최대 Max개 이하 |
- 정규 표현식 플래그 플래그는 동시에 여러개 사용할 수 있다.
Flag | Meaning |
g | Global : 모든 문자 검색(안 쓰면 매칭되는 첫 문자만 검색) |
i | Ignore Case : 대/소문자 구분 안함 |
m | Multi line : 여러 행의 문자열에 대해 검색 |
- 정규 표현식 주요 메소드 메소드를 통해 패턴을 검사하고, 매칭되는 문자열을 추출 변환한다.
Method | Meaning |
("문자열").match(/정규표현식/플래그) | "문자열"에서 "정규표현식"에 매칭되는 항목들을 배열로 반환" |
("문자열").replace(/정규표현식/, "대체문자열") | "정규표현식"에 매칭되는 항목을 "대체 문자열"로 변환 |
("문자열").split(정규표현식) | "문자열"을 "정규표현식"에 매칭되는 항목으로 쪼개어 배열로 반환 |
(정규표현식).test("문자열") | "문자열"이 "정규표현식"과 매칭되면 true, 아니면 false를 반환 |
(정규표현식).exec("문자열") | match메소드와 유사(단, 무조건 첫번째 매칭 결과만 반환한다.) |
반응형
'Javscript' 카테고리의 다른 글
[Javascript] 배열 기초 + 프로퍼티 (1/27) (0) | 2022.01.29 |
---|---|
[Javascript] String 객체 (1/27) (0) | 2022.01.29 |
[Javascript] Date 객체 (1/21) (0) | 2022.01.21 |
[Javascript] Math 객체 (1/20) (0) | 2022.01.21 |
[Javascript] 자바스크립트 (1/20) (0) | 2022.01.21 |