회원가입 폼에서 이메일 유효성 검사를 만드는데, 정규식 패턴이 맞는지 확인할 방법이 마땅치 않았다. 코드에 넣고 실행해보면 되지만, 패턴 하나 고칠 때마다 빌드를 돌리는 건 비효율적이다. 정규식만 따로 테스트할 수 있는 도구가 필요했다.
자주 쓰는 정규식 패턴
| 용도 | 패턴 | 매칭 예시 |
|---|---|---|
| 이메일 | [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} | [email protected] |
| 한국 전화번호 | 01[0-9]-\d{3,4}-\d{4} | 010-1234-5678 |
| 한글만 | [가-힣]+ | 안녕하세요 |
| URL | https?://[^\s]+ | https://example.com |
플래그 옵션
- g (global)
- 첫 번째 매칭에서 멈추지 않고 전체 텍스트에서 모든 매칭을 찾는다.
- i (case-insensitive)
- 대소문자를 구분하지 않는다.
/hello/i는 Hello, HELLO도 매칭한다. - m (multiline)
^와$가 전체 텍스트가 아닌 각 줄의 시작과 끝을 가리킨다.- s (dotAll)
.이 줄바꿈 문자까지 포함해서 매칭한다.
기본 문법 빠른 참조
\d: 숫자 한 자리 (0~9)\w: 영문, 숫자, 밑줄 (word character)\s: 공백, 탭, 줄바꿈+: 1회 이상 반복*: 0회 이상 반복?: 0회 또는 1회{2,4}: 최소 2회, 최대 4회 반복[a-z]: a부터 z까지 범위(): 캡처 그룹
패턴을 입력하고 테스트 문자열을 넣으면 매칭 결과가 실시간으로 표시되는 정규식 테스터를 쓰면, 코드에 반영하기 전에 패턴이 의도대로 동작하는지 바로 확인할 수 있다. 이메일, URL, 전화번호 같은 프리셋 패턴도 버튼 하나로 불러올 수 있어서 처음부터 작성할 필요가 없다.
정규식은 익숙해지기 전까지 시행착오가 많다. 테스터에서 실시간으로 확인하면서 만들면 실수를 크게 줄일 수 있다.