특수문자 필터링, 정규표현식 for JavaScript

2022. 7. 15. 09:49·보안/웹·모바일

특수문자 필터링 for JavaScript

정규표현식 표현방법

1. 정규 표현식 리터럴
const match = /pattern/flag

2. RegExp 호출
const match = new RegExp(pattern)

 

검색패턴

 
[^문자] Not 문자
^문자열 특정 문자열로 시작
문자열$ 특정 문자열로 끝남
| OR
[] 괄호 내 문자열들 중 하나
{} 반복 횟수
() 괄호로 감싼 부분과 일치하는 부분 문자열을 기억. 나중에 불러와서 사용가능.

 

반복패턴

 
? 최대 한번 반복 ( 0 or 1)
* 0회 이상 반복
+ 1회 이상 반복
. 정확히 1개 문자 매칭
{n} N번 반복
{n,} 최소 n번 반복
{n,m} 최소 n번 최대 m번 반복

 

확장문자

 
\s 공백 문자(스페이스,탭, FF, LF)
\S 공백이 아닌 것
\b 단어의 경계
\B 이를 제외한 모든 문자를 매칭한다
\d 숫자
\D 숫자가 아닌 문자 (=[^0-9])
\w =[A-Za-z0-9_]
\W =[^A-Za-z0-9_]
\특문 해당 특수문자를 의미

 

플래그 값 (슬래시 뒤에 지정)

 
g 전역매칭. 해당하는 문자 모두 탐색.
사용하지 않으면 매칭되는 첫문자만
i 대소문자 무시
i 여러 줄 매칭

 

예제로 알아보는 정규표현식

[예제1] 010-1234-5678 전화번호 필터링
구성: 숫자3개 - 숫자4개 - 숫자4개
표현: /\d{3}-\d{4}-\d{4}/
- /abc/ : abc가 있는 문자열
- \d{n} : n은 갯수, \d는 숫자를 의미

 

[예제2] 영어만 입력받는 경우
소문자만 표현: /[a-z]/
대문자만 표현: /[A-Z]/
+) 숫자만 표현: /[0-9]/

 

[예제3] a~z, A~Z, 0~9 사이 모든 문자
표현: /[a-zA-Z0-9]/

 

[예제4] id/pwd 체크. 숫자만 허용, 4~10자리
구성: 시작부터 영어와 숫자만 가능함.
표현: /^[A-Za-z0-9] {4,10}$/

 

[예제5] 한글 필터
표현: /[ㄱ-ㅎ|ㅏ-;|가-힣]/

 

[예제6] 이메일 체크
표현: /[a-z0-9]{2,}@[a-z0-0]{2,}/[a-z0-9]{2,}/i
표현2: /[\w\-\/.]@[\w\-\.]/

 

[예제7] 영문 숫자 조합체크
구성: 영어만 있으면 안됨. 그리고 숫자만 있어도 안됨.
표현: /[^a-z|^0-9]/gi

 

[예제8] 특수문자 제외 2~10글자
표현: /^[\w\Wㄱ-ㅎㅏ-ㅣ가-힣] {2,20}$/

 

RegExp 객체의 메서드

-  test(): 문자열에서 일치하는 부분 탐색. T/F반환

-  exec(): 문자열에서 일치하는 부분 탐색. 해당 부분 배열로 반환

 

String 객체의 메서드

-  match(): 문자열에서 모든 일치하는 부분들 탐색. 해당 부분들 배열로 반환

-  replace(): 매칭되는 부분을 대체 문자열로 변환

-  search(): 탐색 후 일치하는 부분의 인덱스 반환

-  split(): 문자열을 매칭되는 부분으로 쪼개서 배열로 반환

 

저작자표시 (새창열림)

'보안 > 웹·모바일' 카테고리의 다른 글

XSS (Cross Site Script) 실습  (0) 2022.07.15
Blind SQL Injection 실습  (0) 2022.07.15
Load of SQLInjection 문제풀이  (0) 2022.07.15
Union SQL Injection 실습  (0) 2022.07.14
Error-based SQL Injection 실습  (0) 2022.07.12
'보안/웹·모바일' 카테고리의 다른 글
  • XSS (Cross Site Script) 실습
  • Blind SQL Injection 실습
  • Load of SQLInjection 문제풀이
  • Union SQL Injection 실습
병뚜
병뚜
열정!
  • 병뚜
    열려라 뚜껑
    병뚜
  • 전체
    오늘
    어제
    • all (372)
      • 일상X사랑X돈 (0)
        • 보안이슈 (114)
        • 뜨거운감자 (9)
        • 맛집 (2)
        • 혼잣말 (16)
      • 보안 (87)
        • 웹·모바일 (46)
        • 인프라 (19)
        • 리버싱 (8)
        • Security-Gym (10)
        • 리뷰 (4)
      • 프로그래밍 (66)
        • python (14)
        • java (12)
        • js (40)
      • System (47)
        • OS (14)
        • 침투 (33)
      • Play (20)
        • wargame (20)
      • 기타 (10)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    파이썬입문
    랜섬웨어
    혼자공부하는파이썬
    정보보안
    보안이슈
    혼공학습단
    뉴스요약
    리버싱
    kisa
    windows internals
    리버싱초보
    드림핵리버싱
    자바스크립트 상속
    파이썬초보
    파이썬
    혼공단
    혼공파
    정보보안교육
    공급망공격
    파이썬공부
    IT뉴스
    프로세스
    커널디버깅
    악성코드
    윈도우인터널스
    정보보호
    보안뉴스
    it이슈
    jwt
    혼공
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
병뚜
특수문자 필터링, 정규표현식 for JavaScript
상단으로

티스토리툴바