정규표현식이란 ?
문자열을 검색하고 대체하는 데 사용 가능한 일종의 형식 언어(패턴)입니다. 크게 다음과 같은 역할을 합니다.
1. 문자 검색 (search)
2. 문자 대체 (replace)
3. 문자 추출 (extract)
제가 사용했었을 때는 이메일, 패스워드 검사 정도로 사용해봤었고, 복잡한 문자 일치 기능 같은 것도 빠르게 수행할 수 있다고 합니다. 자바스크립트는 직접 빌드된 정규표현식을 지원하는 언어 중 하나이고, syntax가 좀 가독성이 떨어지나 익숙해지면 편하게 사용 가능할 것으로 보입니다.
정규식 생성 방법
생성자 함수 방식
const evanInfo = `
010-1234-5678
`
const regexp_number = new RegExp("[0-9]{1,}","g")
console.log(evanInfo.match(regexp_number)); //['010','1234','5678']
RegExp 생성자 함수를 호출하여 사용 가능합니다.
리터럴(Literal) 방식
const evanInfo = `
010-1234-5678
`
const regexp_number = /[0-9]{1,}/g;
console.log(evanInfo.match(regexp_number));
보통의 경우 리터럴 방식으로 처리한다. 훨씬 편한 느낌이 난다.
정규표현식의 메소드
Method | Syntax | Description |
exec | 정규식.exec(문자열) | 일치하는 하나의 정보(Array) 반환 |
test | 정규식.test(문자열) | 일치 여부(Boolean) 반환 |
match | 문자열.match(정규식) | 일치하는 문자열의 배열(Array) 반환 |
search | 문자열.search(정규식) | 일치하는 문자열의 인덱스(Number) 반환 |
replace | 문자열.replace(정규식, 대체문자) | 일치하는 문자열 대체하고 대체 문자열로 변환 |
split | 문자열.split(정규식) | 일치하는 문자열을 분할하여 배열로 반환 |
toString | 생성자_정규식.toString() | 생성자 함수 정규식을 리터럴 방식으로 변환 |
정규식 패턴(표현식)
정규식 패턴 | 설명 |
^ | 줄의 시작에서 일치 |
$ | 줄의 끝에서 일치 |
. | 임의의 한 문자와 일치 |
aㅣb | a 또는 b와 일치, 인덱스가 작은 것을 우선 반환 |
ab? | 없거나 1회 가능한 많이 일치 |
{3} | 3개 연속 일치 |
{3,} | 3개 이상 연속 일치 |
{3,5} | 3개 이상 5개 이하 연속 일치 |
[abc] | a 또는 b 또는 c와 일치 |
[a-z] | a부터 z사이의 문자 구간에 일치(소문자) |
[A-Z] | A부터 Z사이의 문자 구간에 일치(대문자) |
[0-9] | 0부터 9사이 문자 구간에 일치(숫자) |
[가-힣] | 가부터 힣사이의 문자 구간에 일치(한글) |
\w | 63개 문자(word, 영문 대소문자 52개 + 숫자 10개 + _)에 일치 |
\d | 숫자에 일치 |
\b | \w 가 아닌 모든 문자에 일치 |
\s | 공백 (space, tab)에 일치 |
(?=) | 앞쪽 일치 (Lookahead) |
(?<=) | 뒤쪽 일치 (Lookbehind) |
참고 블로그 (Reference Blog)
https://heropy.blog/2018/10/28/regexp/
'Javascript > MGS-JS' 카테고리의 다른 글
고차함수 - HOF (0) | 2022.07.19 |
---|---|
Javascript Data Practical (0) | 2022.07.03 |
자바스크립트 데이터 - Javascript Data (0) | 2022.07.01 |
클래스 개념 - Class Concept (0) | 2022.07.01 |
함수 복습 - Fn Theory Recap (0) | 2022.06.30 |