정규 표현식

내 할일 잘 하기·2023년 2월 25일
0

Developer

목록 보기
4/8

0. 상용 정규표현식 테이블

정규 표현식의미
^[0-9]*$ == \d숫자
^[a-zA-Z]*$알파벳
^[가-힣]*$한글
^[a-zA-Z0-9]알파벳이나 숫자
^[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-z]+$이메일(Email)
\w+@\w+.\w+(\.\w+)?이메일(Email)
^01(?:01

1. 정규표현식 개념

정규 표현식은 문자열에 나타는 특정 문자 조합과 대응시키기 위해 사용되는 패턴이다. 이 패턴들은 RegExp의 exec 메소드와 test 메소드 ,그리고 String의 match메소드 , replace메소드 , search메소드 , split 메소드와 함께 쓰인다.

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

  1. 정규표현식 만들기

    1. 정규 표현식 리터럴. 다음과 같이 슬래시로 패턴을 감싸서 작성한다.
    const re = /ab+c/

    정규 표현식 리터럴은 스크립트를 불러올 때 컴파일되므로, 바뀔 일이 없는 패턴의 경우 리터럴을 사용하면 성능이 향상될 수 있다.

    1. RegExp 객체의 생성자 호출.
    const re = new RegExp('ab+c')

    생성자 함수를 사용하면 정규 표현식이 런타임에 컴파일된다. 바뀔 수 있는 패턴이나, 사용자 입력 등 외부 출처에서 가져오는 패턴의 경우 위와 같이 사용하자.

  2. 확장문자 (: backslash)

    • s : 공백 문자(스페이스, 탭, 폼 피드, 라인 피드)
    • b : 단어의 경계
    • B 이를 제외한 모든 문자 매칭
    • d : 숫자
    • D : 숫자가 아닌 문자 [^0-9] 와 동일
    • w : 알파벳, 숫자로 된 문자, 밑줄 기호(_) [A-Za-z0-9]
    • W : w의 반대 문자 [^a-za-z0-9]
    • 특수문자 : 특수문자 자체를 의미 예) + (+ 기호 자체)
  3. 특수문자

    • `` : 0회 이상 반복
    • + : 1회 이상 반복
    • ? : 0 또는 1개의 문자 매칭
    • . : 정확히 1개 문자 매칭
  4. 플래그

  5. 기타

    • () : 괄호로 묶인 패턴은 매칭된 다음, 그 부분을 기억한다.
    • $1,...,$9 : 괄호로 갭처한 부분 문자열이 저장 됨.
    • | : ~또는~
    • {} : 반복 횟수

2. 간단한 정규표현식

const re = /a/         --a 가 있는 문자열
const re = /a/i        --a 가 있는 문자열, 대소문자 구분 안함
const re = /apple/    -- apple가 있는 문자열
const re = /[a-z]/    -- a~z 사이의 모든 문자
const re = /[a-zA-Z0-9]/    -- a~z, A~Z 0~9 사이의 모든 문자
const re = /[a-z]|[0-9]/  -- a~z 혹은 0~9사이의 문자
const re = /a|b|c/   --  a 혹은 b 혹은 c인 문자
const re = /[^a-z]/  -- a~z까지의 문자가 아닌 문자("^" 부정)
const re = /^[a-z]/  -- 문자의 처음이 a~z로 시작되는 문장
const re = /[a-z]$/  -- 문자가 a~z로 끝남

3. 상용 정규표현식

//특수문자 체크 정규식
const regExp = /[\{\}\[\]\/?.,;:|\)*~`!^\-_+<>@\#$%&\\\=\(\'\"]/g;

//모든 공백 체크 정규식
const regExp = /\s/g;

//숫자만 체크 정규식
const regExp = /[0-9]/g;

//이메일 체크 정규식
const regExp = /^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i;

//핸드폰번호 정규식
const regExp = /^\d{3}-\d{3,4}-\d{4}$/;

//일반 전화번호 정규식
const regExp = /^\d{2,3}-\d{3,4}-\d{4}$/;

//아이디나 비밀번호 정규식
const regExp = /^[a-z0-9_]{4,20}$/;

//휴대폰번호 체크 정규식
const regExp = /^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/;

4. 정규표현식 메서드

  1. test()
    문자열에 일치하는 부분이 있는지 확인하는 메서드. boolean 값을 return 한다.
    정규식.test(문자열)
  2. exec()
    문자열에 일치하는 부분을 탐색하는 메서드. 일처 정보를 나타내는 문자열을 배열에 담아서 return 한다.
    정규식.exec(문자열)
  3. String의 메서드에서 정규표현식을 사용
    • match()
    • replace()
    • search()
    • split()
profile
함께 일하고싶은 개발자로 기억될래요

0개의 댓글