❓ 문의하기 페이지를 개발하면서 form을 만드는데
이메일 형식이 맞는지 여부를 검사하기 위해
평소처럼 구글링을 통해 이메일 정규 표현식을 가져다가 쓰려다가
정확한 이해 없이 쓰고있었던 것 같아서 한번 정리하고 넘어가려고 한다.
일정한 패턴을 가진 문자열의 집합을 표현하기 위해 사용하는 형식 언어
다양한 프로그래밍 언어에서 지원
ex) 휴대폰 번호가 유효한지 체크하는 경우 -> 숫자 3개 + '-' + 숫자 4개 + '-' + 숫자 4개 라는 패턴을 정규 표현식으로 정의하고 사용자로부터 입력받은 문자열이 이 패턴에 매칭하는지 체크
ex) 긴 문자열에서 전화번호 패턴, 웹사이트 패턴에 체크되는지 체크
플래그 | 의미 | 설명 |
---|---|---|
i | Ignore case | 대소문자를 구별하지 않고 패턴을 검색 |
g | Global | 대상 문자열 내에서 패턴과 일치하는 모든 문자열을 전역 검색 |
m | Multi line | 문자열의 행이 바뀌더라도 패턴 검색을 계속한다. |
Character | 뜻 |
---|---|
\| | 또는 |
() | 그룹 |
[] | 문자셋, 괄호안의 어떤 문자든 |
[^] | 부정 문자셋, 괄호안의 어떤 문가 아닐때 |
(?:) | 찾지만 기억하지는 않음 |
Character | 뜻 |
---|---|
? | 없거나 있거나 (zero or one) |
* | 없거나 있거나 많거나 (zero or more) |
+ | 하나 또는 많이 (one or more) |
{n} | n번 반복 |
{min,} | 최소 |
{min,max} | 최소, 그리고 최대 |
Character | 뜻 |
---|---|
\b | 단어 경계 |
\B | 단어 경계가 아님 |
^ | 문장의 시작 |
$ | 문장의 끝 |
Character | 뜻 |
---|---|
\ | 특수 문자가 아닌 문자 |
. | 어떤 글자 (줄바꿈 문자 제외) |
\d | digit 숫자 |
\D | digit 숫자 아님 |
\w | word 문자 |
\W | word 문자 아님 |
\s | space 공백 |
\S | space 공백 아님 |
연습 사이트: https://regexone.com/
출처:
모던 자바스크립트 딥다이브
https://github.com/dream-ellie/regex