JavaScript & jQuery & Ajax

정규표현식 정리

라임오렌지원 2022. 8. 25. 22:54

정규표현식은 이메일 검사, 전화번호, 주민등록번호 등 유효성 검사를 할 때도 사용되지만

XSS 공격을 대비하여 보안처리 할 수도 있기 때문에 이번 기회에 정리해보려고 한다.

 

다른 분의 블로그 자료와 함께

'모던 웹을 위한 JavaScript jQuery 입문 3판' 책을 참고하여 정리하였다.

 

 

정규표현식 문법

\d 숫자를 대표하는 글자들 (d는 digit의 약자) => 숫자
\D 숫자를 제외한 문자 => 숫자 아님
\w 글자를 대표하는 글자들 (w는 word의 약자) => 아무 단어 (숫자 포함)
\W 글자 대표 문자를 제외한 글자들(특수문자, 공백 등) => 아무 단어 아님
\s 공백 문자(스페이스, 탭, 뉴라인)
\S 공백 문자를 제외한 문자 => 공백 문자 아님
+ '하나 혹은 그 이상 연결된' 라는 뜻
\d+ : 연결된 숫자들만 ['02', '1234', '5676']
\w+ : 연결된 글자들만(숫자도 글자로 포함) ['Luke', '02', '다스베이더', 'gmail', 'com']
* '0개 이상이다' 라는 뜻
^ 문자열의 시작
$ 문자열의 종료
. 임의의 한 문자의 자리수를 표현 ( 아무 글자 )
? '있거나 없거나' 라는 뜻
-? 는 -가 있거나 없거나 -> 전화번호 사이에 -가 포함되거나 포함안된 글자를 찾을 수 있음.
[ ] '괄호에 있는 글자들 중에 하나'
위의 -?는 -가 있거나 없거나 이지만 [-] 는 -거나 공백이거나 둘 중 하나면 ok
[n-m] 'n부터 m까지 글자를 모두 선택해라'
[가-힣] : 한글 모두 선택 (ㄱ,ㄴ,ㄷ,ㅏ,ㅑ,ㅓ 처럼 낱글자는 찾을 수 없음)
[a-z] : a부터 z까지 선택
[^abc] 괄호 안의 글자 제외
{n} 'n번 반복한다.'
\d{2} : 숫자가 연속 2번 나온다.
{n,m} 'n번에서 m번만큼 반복한다.'
() 그룹을 표현함. 괄호 안에 들어가는 내용들은 그룹이 된다.

* 프로그래머스 강의 참고

\w : 특수문자는 포함하지 않지만,  _ (언더스코어) 는 포함한다.

 

 

수량 문자

a+ a가 적어도 1개 이상
a* a가 적어도 0개 또는 여러 개
a? a가 0개 또는 1개
a{5} a가 5개
a{2,5} a가 2개 ~ 5개
a{2,} a가 2개 이상
a{,2} a가 2개 이하

 

 

선택 문자

(abc|def) abc 또는 def 선택

 

 

Flag

g Global의 약자. 문자열에 모든 패턴들을 검색 ( 전역 비교 수행 )
i Ignore case의 약자. 문자열에 대소문자를 식별하지 않음
m multi line의 약자. 문자열에 라인이 여러개인 경우에도 검색 ( 여러 줄의 검사 수행 )

 

앵커 문자

^ABC 맨 앞 문자가 ABC
ABC$ 맨 뒤 문자가 ABC

 

 

정규표현식 JavaScript - String 객체의 메서드

match(regExp) 정규 표현식과 일치하는 부분을 리턴
replace(regExp, replacement) 정규 표현식과 일치하는 부분을 새로운 문자열로 바꾼다
search(regExp) 정규 표현식과 일치하는 부분의 위치를 리턴
split(regExp) 정규 표현식을 기준으로 문자열을 잘라 배열을 리턴

 

 

테스트 사이트

https://regexr.com/

 

RegExr: Learn, Build, & Test RegEx

RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).

regexr.com

https://regexper.com/

 

Regexper

 

regexper.com

 

 


참고사이트 

 

https://wooncloud.tistory.com/86

 

정규표현식 문법 공부하기

본 포스트는 프로그래머스 정규표현식 강의를 참조하여 정리한 글입니다. 그래서 프로그래머스 강의에서 나오는 예제 코드와 같습니다. https://programmers.co.kr/learn/courses/11 정규표현식 평가 5.0 63

wooncloud.tistory.com

 

 

728x90

'JavaScript & jQuery & Ajax' 카테고리의 다른 글

[js/jQuery] jsTree, TreeView  (1) 2023.01.25
[js/jQuery] radio button event (button.checked)  (0) 2023.01.19
[Ajax] ajaxSetup()  (0) 2022.10.05
[js] preventDefault() stopPropagation()  (0) 2022.09.27
[JS/jQuery] append(), html()  (0) 2022.08.18