정규 표현식은 문자열에 나타나는 특정 문자 조합과 대응시키기 위해 사용되는 패턴입니다.
즉 정규 표현식을 이용하여 특정 패턴에 매칭되는 문자열을 찾아낼 수 있습니다.
예를 들어 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 | 여러 행의 문자열에 대해 검색 |
위의 여러가지 패턴을 이용해서 다양한 정규 표현식을 생성할 수 있습니다.
위의 예제 이메일 뿐만 아니라, 카드 번호, 핸드폰 번호 등 여러가지로 활용 가능합니다