SOOM_BLOG [숨숨 블로그]

[Javascript] 정규 표현식_특수문자, 패턴정리 본문

TIL/js

[Javascript] 정규 표현식_특수문자, 패턴정리

soomst 2022. 3. 7. 22:18

정규표현식 사용법 정리

1. 정규표현식 매칭 패턴(문자, 숫자, 기호 등)

패턴 의미
a-zA-Z 영어알파벳(-으로 범위 지정)
ㄱ-ㅎ가-힣 한글 문자(-으로 범위 지정)
0-9 숫자(-으로 범위 지정)
. 모든 문자열(숫자, 한글, 영어, 특수기호, 공백 모두! 단, 줄바꿈X)
\d 숫자
\D 숫자가 아닌 것
\w 영어 알파벳, 숫자, 언더스코어(_)
\W /w 가 아닌 것
\s space 공백
\S space 공백이 아닌 것
\특수기호 특수기호

 

2. 정규표현식 검색 패턴

기호 의미
[] 괄호안의 문자들 중 하나
[^문자] 괄호안의 문자를 제외한 것
^문자열 특정 문자열로 시작(괄호 없음 주의!)
문자열$ 특정 문자열로 끝남
() 그룹 검색 및 분류(match메서드에서 그룹별로 묶어줌)
(?: 패턴) 그룹 검색(분류X)
\b 단어의 처음/끝
\B 단어의 처음/끝이 아님

 

3. 정규표현식 갯수(수량) 패턴

기호 의미
? 최대 한번(없음 || 한개)
* 없거나 있거나 (없음 || 한개) : 여러개 포함
+ 최소 한개(한개 || 여러개)
{n} n개
{Min,} 최소 Min개 이상
{Min, Max} 최소 Min개 이상, 최대 Max개 이하

 

4. 정규표현식 플래그

플래그 의미
g Global: 모든 문자 검색(안 쓰면 매칭되는 첫 문자만 검색)
i Ignore Case: 대소문자 구분 안함
m Multi line: 여러 행의 문자열에 대해 검색

 

5. 정규표현식 주요 메서드

("문자열").match(/정규표현식/플래그) "문자열"에서 "정규표현식"에 매칭되는 항목들을 배열로 반환
("문자열").replace(/정규표현식/, "대체문자열") "정규표현식"에 매칭되는 항목을 "대체문자열"로 변환
("문자열").split(정규표현식) "문자열"을 "정규표현식"에 매칭되는 항목으로 쪼개어 배열로 반환
(정규표현식).test("문자열") "문자열"이 "정규표현식"과 매칭되면 true, 아니면 false반환
(정규표현식).exec("문자열") match메서드와 유사(단, 무조건 첫번째 매칭 결과만 반환)
'문자열'.padEnd(목표 문자열 길이 [, 입력 문자열]) 끝부터 주어진 문자열로 채워 목표 길이를 만족하는 String

정규표현식 활용 예시

표현 설명
/대/ '대'를 '하나'만 찾는다.
/대/g '대'를 '모두' 찾는다.
/[대a0]/g '대', 'a', 0 중에 하나를 모두 찾는다.
/[0-9]/g '숫자0~9'를 모두 찾는다.
/[a-zA-Z]/g '영어알파벳 대문자/소문자'를 모두 찾는다.
/[^0-9]/g '숫자0~9'가 아닌 것을 모두 찾는다.
/[^0-9]/g '숫자0~9'가 아닌 것을 모두 찾는다.

 

자주 쓰이는 정규식 패턴 (출처: https://highcode.tistory.com/6 [HighCode])

  •  숫자만 허용: /^[0-9]*$/
  • 영문자만 허용: /^[a-zA-Z]*$/
  • 한글만 허용: /^[가-힣]*$/
  • 영어 & 숫자만 허용: /^[a-zA-Z0-9]*$/
  • E-Mail : /^[a-zA-Z0-9]+@[a-zA-Z0-9]+$/
  • 휴대폰 : /^01(?:0|1|[6-9]) - (?:\d{3}|\d{4}) - \d{4}$/
  • 일반전화 : /^\d{2,3} - \d{3,4} - \d{4}$/
  • 주민등록번호 : /\d{6} \- [1-4]\d{6}/
  • IP 주소 : /([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3})/

출처: https://curryyou.tistory.com/234 [카레유]

참고 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Regular_Expressions