[TIL] 정규표현식(특수문자, 숫자 등)

대빵·2023년 12월 8일
1

정규표현식(RegExp)

정규표현식은 문자열에 나타는 특정 문자 조합과 대응시키기 위해 사용되는 패턴으로 RegExp의 exec 메소드와 test 메소드, String의 match메소드, replace메소드, search메소드, split 메소드와 함께 쓰인다.

기본 구성 요소

리터럴 문자

정규 표현식에 포함된 일반 문자들은 그 자체로 매칭됩니다. 예: abc는 문자열 내의 "abc"와 매칭됩니다.

메타 문자

특수한 의미를 갖는 문자로, ^, $, *, +, ?, . 등이 있습니다.

문자 클래스

[ ]를 사용하여 문자들의 집합을 나타내며, 해당 위치에서 어떤 문자든지 매칭될 수 있습니다.

범위

[0-9]와 같이 범위를 지정하여 매칭될 수 있는 문자의 범위를 나타낼 수 있습니다.

반복자

*, +, ?를 사용하여 패턴의 반복을 표현할 수 있습니다.

그룹화

( )를 사용하여 하위 표현식을 그룹화할 수 있습니다.

간단한 정규표현식

const re = /a/         --a 가 있는 문자열
const re = /a/i        --a 가 있는 문자열, 대소문자 구분 안함
const re = /apple/    -- apple가 있는 문자열
const re = /[a-z]/    -- a~z 사이의 모든 문자
const re = /[a-zA-Z0-9]/    -- a~z, A~Z 0~9 사이의 모든 문자
const re = /[a-z]|[0-9]/  -- a~z 혹은 0~9사이의 문자
const re = /a|b|c/   --  a 혹은 b 혹은 c인 문자
const re = /[^a-z]/  -- a~z까지의 문자가 아닌 문자("^" 부정)
const re = /^[a-z]/  -- 문자의 처음이 a~z로 시작되는 문장
const re = /[a-z]$/  -- 문자가 a~z로 끝남

상용 정규표현식

특수문자 체크 정규식
const regExp = /[\{\}\[\]\/?.,;:|\)*~`!^\-_+<>@\#$%&\\\=\(\'\"]/g;

모든 공백 체크 정규식
const regExp = /\s/g;

숫자만 체크 정규식
const regExp = /[0-9]/g;

이메일 체크 정규식
const regExp = /^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i;

핸드폰번호 정규식
const regExp = /^\d{3}-\d{3,4}-\d{4}$/;

일반 전화번호 정규식
const regExp = /^\d{2,3}-\d{3,4}-\d{4}$/;

아이디나 비밀번호 정규식
const regExp = /^[a-z0-9_]{4,20}$/;

휴대폰번호 체크 정규식
const regExp = /^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/;

정규표현식 메서드

test 메서드

정규식.test(문자열)

match 메서드

인수로 정규식을 받으며, 일치하는 문자열의 배열(Array) 데이터를 반환한다.

문자열.match(정규식)

replace 메서드

첫 번째 인수로는 정규표현식, 두 번째 인수로는 대체하려는 문자 데이터를 넣는다. 이를 통해 일치하는 문자열을 새로운 문자열로 대체하고, 대체된 결과를 문자열(String)로 반환한다.

문자열.replace(정규식, 대체문자)

0개의 댓글