정규 표현식은 문자열에 나타나는 특정 문자 조합과 대응시키기 위해 사용되는 패턴입니다.
즉 정규 표현식을 이용하여 특정 패턴에 매칭되는 문자열을 찾아낼 수 있습니다.
예를 들어 example@gmail.com 이라는 문자열은 @을 기준으로 앞 뒤로 문자열이 있고 또 뒤의 문자열에서 .을 기준으로 앞뒤로 문자열이 있는 것을 확인할 수 있습니다.
해당 패턴을 체크하는 방법은 다음과 같습니다.
const email = "example@gmail.com"
const regExp = /^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$/i;
console.log(regExp.test(email))
위의 코드를 실행시켜보면 true가 출력되는 것을 확인할 수 있습니다.
패턴 | 의미 |
---|---|
a-zA-Z | 알파벳 |
ㄱ-ㅎ가-힣 | 한글 |
0-9 | 숫자 |
. | 모든 문자열 |
\d | 숫자 |
\D | 숫자가 아닌 것 |
\w | 알파벳, 숫자, 언더바 |
\W | \w가 아닌 것 |
\s | 공백 |
\S | 공백이 아닌 것 |
패턴 | 의미 |
---|---|
[] | 괄호안의 문자들 중 하나 |
[^문자] | 괄호안의 문자를 제외한 것 |
^문자열 | 특정 문자열로 시작 |
문자열$ | 특정 문자열로 끝남 |
() | 그룹 검색 및 분류 |
(?: 패턴) | 그룹 검색 |
\b | 단어의 처음, 끝 |
\B | 단어의 처음, 끝이 아님 |
\s | 공백 |
\S | 공백이 아닌 것 |
패턴 | 의미 |
---|---|
? | 최대 한번 |
* | 없거나 있음 여러개 가능 |
+ | 최소 한개 |
{n} | n개 |
{Min,} | 최소 Min개 이상 |
{Min, Max} | 최소 Min개 이상 Max개 이하 |
패턴 | 의미 |
---|---|
g | 모든 문자 검색 |
i | 대소문자 구분 안함 |
m | 여러 행의 문자열에 대해 검색 |
위의 여러가지 패턴을 이용해서 다양한 정규 표현식을 생성할 수 있습니다.
위의 예제 이메일 뿐만 아니라, 카드 번호, 핸드폰 번호 등 여러가지로 활용 가능합니다