정규 표현식 | 의미 |
---|---|
^[0-9]*$ == \d | 숫자 |
^[a-zA-Z]*$ | 알파벳 |
^[가-힣]*$ | 한글 |
^[a-zA-Z0-9] | 알파벳이나 숫자 |
^[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-z]+$ | 이메일(Email) |
\w+@\w+.\w+(\.\w+)? | 이메일(Email) |
^01(?:0 | 1 |
정규 표현식은 문자열에 나타는 특정 문자 조합과 대응시키기 위해 사용되는 패턴이다. 이 패턴들은 RegExp의 exec 메소드와 test 메소드 ,그리고 String의 match메소드 , replace메소드 , search메소드 , split 메소드와 함께 쓰인다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Regular_Expressions
정규표현식 만들기
const re = /ab+c/
정규 표현식 리터럴은 스크립트를 불러올 때 컴파일되므로, 바뀔 일이 없는 패턴의 경우 리터럴을 사용하면 성능이 향상될 수 있다.
const re = new RegExp('ab+c')
생성자 함수를 사용하면 정규 표현식이 런타임에 컴파일된다. 바뀔 수 있는 패턴이나, 사용자 입력 등 외부 출처에서 가져오는 패턴의 경우 위와 같이 사용하자.
확장문자 (: backslash)
s
: 공백 문자(스페이스, 탭, 폼 피드, 라인 피드)b
: 단어의 경계B
이를 제외한 모든 문자 매칭d
: 숫자D
: 숫자가 아닌 문자 [^0-9] 와 동일w
: 알파벳, 숫자로 된 문자, 밑줄 기호(_) [A-Za-z0-9]W
: w의 반대 문자 [^a-za-z0-9]특수문자
+
: 1회 이상 반복?
: 0 또는 1개의 문자 매칭.
: 정확히 1개 문자 매칭플래그
g
: 전역매칭i
: 대소문자 무시m
: 여러 줄 매칭기타
()
: 괄호로 묶인 패턴은 매칭된 다음, 그 부분을 기억한다.$1,...,$9
: 괄호로 갭처한 부분 문자열이 저장 됨.|
: ~또는~{}
: 반복 횟수const re = /a/ --a 가 있는 문자열
const re = /a/i --a 가 있는 문자열, 대소문자 구분 안함
const re = /apple/ -- apple가 있는 문자열
const re = /[a-z]/ -- a~z 사이의 모든 문자
const re = /[a-zA-Z0-9]/ -- a~z, A~Z 0~9 사이의 모든 문자
const re = /[a-z]|[0-9]/ -- a~z 혹은 0~9사이의 문자
const re = /a|b|c/ -- a 혹은 b 혹은 c인 문자
const re = /[^a-z]/ -- a~z까지의 문자가 아닌 문자("^" 부정)
const re = /^[a-z]/ -- 문자의 처음이 a~z로 시작되는 문장
const re = /[a-z]$/ -- 문자가 a~z로 끝남
//특수문자 체크 정규식
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})$/;
정규식.test(문자열)
정규식.exec(문자열)