정규표현식(regular expression)이란
정규표현식이란 문자열에서 특정한 규칙을 가지는 문자열의 집합을 찾아내기 위한 검색 패턴
정규 표현식의 생성
1. 정규 표현식 리터럴을 이용한 생성
2. RegExp 객체를 이용한 생성
문법
/pattern/modifiers
정규 표현식 리터럴은 슬래시(/) 기호로 시작하여, 슬래시(/) 기호로 끝납니다.
또한, 필요에 따라 플래그를 추가하여 기본 검색 설정을 변경할 수도 있습니다.
정규표현식 패턴
modifiers
정규 표현식을 생성할 때 modifiers를 사용하여 기본 검색 설정을 변경할 수 있다. 이렇게 설정된 modifiers는 나중에 추가되거나 삭제될 수 없다.
modifiers | 설명 |
i | 검색 패턴을 비교할 때 대소문자를 구분하지 않도록 설정함. |
g | 검색 패턴을 비교할 때 일치하는 모든 부분을 선택하도록 설정. |
m | 검색 패턴을 비교할 때 여러 줄의 입력 문자열을 그 상태 그대로 여러 줄로 비교하도록 설정. |
y | 대상 문자열의 현재 위치부터 비교를 시작하도록 설정함. |
특수 문자(special characters)
정규 표현식을 사용하여 단순한 패턴을 검색하고자 할 때는 찾고자 하는 문자열을 직접 나열하면 된다. 하지만 숫자만을 검색하거나, 띄어쓰기를 찾는 등 정확히 일치하는 패턴보다 더 복잡한 조건을 사용하려면 특수 문자를 사용해야 한다.
특수 문자 | 설명 |
\ | 역슬래시\ 다음에 일반 문자가 나오면 이스케이프문자로 해석하고, 특수 문자가 나오면 일반문자로 해석 |
\d | 숫자를 검색함. /[0-9]/와 같음 |
\D | 숫자가 아닌 문자를 검색함. /[^0-9]와 같음 |
\w | 언더스코어()를 포함한 영문자 및 숫자를 검색./[A-Za-z0-9]/와 같음 |
\W | 언더스코어(), 영문자, 숫자가 아닌 문자를 검색함./[^A-Za-z0-9]/와 같음 |
\s | 띄어쓰기, 탭, 줄 바꿈 문자 등의 공백 문자를 검색함 |
\S | 띄어쓰기, 탭, 줄 바꿈 문자 등으 공백 문자가 아닌 문자를 검색함 |
\xhh | 16진수 hh에 해당하는 유니코드 문자를 검색함 |
\uhhhh | 16진수 hhhh에 해당하는 유니코드 문자를 검색함 |
quantifier
정규 표현식에서는 특수 문자로 수량을 나타내는 다양한 quantifier를 사용할 수 있습니다.
quantifier | 설명 |
n* | 바로 앞의 문자가 0번 이상 나타나는 경우를 검색함./{0,}/와 같음 |
n+ | 바로 앞의 문자가 1번 이상 나타나는 경우를 검색함./{1,}/와 같음 |
n? | 바로 앞의 문자가 0번 또는 1번만 나타나는 경우를 검색함./{0,1}/와 같음 |
괄호(bracket)
정규 표현식에서 사용할 수 있는 여러 가지 괄호의 의미는 다음과 같다.
bracket | 설명 |
a(b)c | 전체 패턴을 검색한 후에 괄호 안에 명시된 문자열을 저장.("abc"를 검색한 후 b저장) |
[abc] | 꺾쇠 괄호([])안에 명시된 문자를 검색("abc"검색) |
[0-3] | 꺾쇠 괄호([])안에 명시된 숫자를 검색(0부터 3까지의 숫자 검색) |
[\b] | 백스페이스 문자를 검색함 |
{n} | 앞의 문자가 정확히 n번 나타나는 경우를 검색. n은 반드시 양의 정수이어야함 |
{m,n} | 앞의 문자가 최소 m번 이상 최대 n번 이하로 나타나는 경우 검색. m과 n은 반드시 양의 정수이어야함 |
위치 문자
정규 표현식에서는 패턴을 검색할 단어의 위치를 지정할 수 있다.
위치 문자 | 설명 |
^a | 단어의 맨 앞(시작점)에 위치한 해당 패턴만을 검색('a'로 시작하는 단어의 'a'만을 검색함) |
a$ | 단어의 맨 뒤(종착점)에 위치한 해당 패턴만을 검색('a'로 끝나는 단어의 'a'만을 검색) |
상용 정규표현식
특수문자 체크 정규식
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})$/;
정규표현식 메서드
1. test메서드
정규식.test(문자열)
2. match메서드
문자열.match(정규식)
인수로 정규식을 받으며, 일치하는 문자열의 배열(Array) 데이터를 반환한다.
3.replace 메서드
문자열.replace(정규식, 대체문자)
첫 번째 인수로는 정규표현식, 두 번째 인수로는 대체하려는 문자 데이터를 넣는다. 이를 통해 일치하는 문자열을 새로운 문자열로 대체하고, 대체된 결과를 문자열(String)로 반환.
'Web > JavaScript' 카테고리의 다른 글
prototype과 prototype chain (0) | 2023.01.23 |
---|---|
class문법 (0) | 2023.01.23 |
인수와 인자, Argument & Parameter (0) | 2022.11.25 |
자바스크립트의 화면 출력 방법 정리 (0) | 2022.11.23 |