패턴 | 의미 |
---|---|
g | 전역 매칭 |
i | 대소문자 무시 |
m | 여러 줄 매칭 |
\ | 다음에 오는 문자를 이스케이프 처리 |
* | 0회 이상 반복 |
+ | 1회 이상 반복 |
? | 0 또는 1개의 문자 매칭 |
. | 정확히 1개 문자 매칭 |
\b | 단어의 경계 |
\B | 이를 제외한 모든 문자 매칭 |
\d | 숫자 0~9 |
\D | 숫자가 아닌 문자 = [^0-9] |
\w | 알파벳, 숫자, 언더바 = [A-Za-z0-9_] |
\W | w의 반대 = [^A-Za-z0-9_] |
\s | 공백문자(스페이스, 탭, 줄바꿈) |
\S | 공백문자 이외의 문자 = [^\s] |
\t | 수평탭 |
\n | 줄바꿈 코드 |
{숫자} | 반복 횟수 |
^x | 시작문자 x |
x$ | 종료문자 x |
() | 괄호로 묶이니 패턴은 매칭된 다음,그 부분을 기억한다 |
x | 문자x |
xyz | 문자 xyz |
[xyz] | x,y,z 중 하나의 문자 |
[a-z] | a~z 중 하나의 문자 |
[^xyz] | x,y,z가 아닌 하나의 문자 |
[^a-z] | a~z가 아닌 하나의 문자 |
abc | xyz |
. | 하나의 문자 |
x* | 0개 이상 계속되는 x |
🔥 정규식을 파악하는데 도움 되는 사이트!
// 영문자 대소문자, 숫자로만 구성
const reg = /[a-zA-Z0-9]/;
// 공백없는 숫자와 대소문자
const reg = /^[a-zA-Z0-9]*$/
// 공백포함 숫자와 대소문자
const reg = /^[a-zA-Z0-9 ]*$/
// 한글포함 특수문자와 공백
const reg = /[^?a-zA-Z0-9/]/;
// 한글, 대문자, 특수문자, 공백 포함
const reg = /^(?=.*[ㄱ-ㅎㅏ-ㅣ가-힣A-Z!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?])/;
// 한글제외 특수문자와 공백
const reg = /[^-가-?a-zA-Z0-9/ ]/;
// 특수문자
const reg = /[\{\}\[\]\/?.,;:|\)*~`!^\-_+<>@\#$%&\\\=\(\'\"]/g;
// 특수문자와 공백
const reg = /[\{\}\[\]\/?.,;:|\)*~`!^\-_+<>@\#$%&\\\=\(\'\"\s]/g;
// 숫자인지 체크
const reg = ^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$;
const reg - /[0-9]/g;
// 모든 공백 체크
const reg = /\s/g;
// 일반 이메일 주소 체크
const reg = /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/;
// 정밀한 이메일 주소 체크
const reg = /(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))/;
// 최소 8자리 이상 영문 대소문자, 숫자, 특수문자가 각각 1개 이상
const reg = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$ %^&*-]).{8,}$/;
// 최소 8자리 이상 숫자, 특수문자가 1개 이상 포함
const reg = /^(?=.*?[0-9])(?=.*?[#?!@$ %^&*-]).{8,}$/;
// 영문자(소문자), 숫자, "-", "_"로만 구성된 길이 2~10자리 사이의 문자열
const reg = /^[a-z0-9_-]{2,10}$/
// 19자리 숫자와 "-"로 구성 (신용카드 번호)
const reg = /^[0-9-]{19}$/;
// 숫자로 구성된 4자리-4자리-4자리-4자리 유형 체크 (신용카드 번호)
const reg = /^[0-9]{4}[-\s\.]?[0-9]{4}[-\s\.]?[0-9]{4}[-\s\.]?[0-9]{4}$/
// 3자리-3~4자리-4자리 유형 (문자 아무거나 가능)
const reg = /^\d[3]-\d[3,4]-\d[4]$/;
// 일반 전화번호
const reg = /^\d{2,3}-\d{3,4}-\d{4}$/;
// 휴대폰 번호
const reg = /^\d{3}-\d{3,4}-\d{4}$/;
// 주민등록번호 체크
const reg = /^[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[@]{1}[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[.]{1}[A-Za-z]{1,5}$/;
// 년월일 (yyyy-mm-dd) 체크
const reg = /^(19|20)\d\d([- /.])(0[1-9]|1[012])\2(0[1-9]|[12][0-9]|3[01])$/;
// 웹사이트 링크인지 체크
const reg = <a\s+(?:[^>]*)href=\"((?:https:\/\/|http:\/\/)(?:.*?))">(?:.*?)<\/a>;
// URL 체크 (프로토콜 포함, ex-http://naver.com)
const reg = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#()?&//=]*)/;
// URL 체크 (프로토콜 옵션, ex-http://naver.com, naver.com)
const reg = /(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/;
// IP 주소 (IPv4)
const reg = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
// 맥어드레스 체크
const reg = /^[a-fA-F0-9]{2}(:[a-fA-F0-9]{2}){5}$/;
// HTML 태그인지 체크
const reg = /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/;
// 하이퍼링크 체크
const reg = /(?!<a\sname=\"([\w\s\d\-\.\#]+)\"><\/a>)<a\sname=\"([\w\s\d\-\.\#]+)\">(.*?)<\/a>/;
문자열이 정규식에 일치하는지 Boolean 값을 반환한다.
정규식.test(문자열)
일치하는 문자열을 배열(Array)로 반환한다.
문자열.match(정규식)
일치하는 문자열을 새로운 문자열로 대체하고, 대체된 결과를 문자열(String)로 반환한다.
문자열.replace(정규식, 대체문자)
출처
개발자로서 배울 점이 많은 글이었습니다. 감사합니다.