정규표현식은 이메일 검사, 전화번호, 주민등록번호 등 유효성 검사를 할 때도 사용되지만
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://wooncloud.tistory.com/86
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 |