정규표현식

Yejung·2022년 9월 13일

출처 : 모던 자바스크립트 Deep Dive p. 578~

정규표현식이란?

일정한 패턴을 가진 문자열의 집합을 표현하기 위해 사용하는 형식 언어
자바스크립트 고유의 문법이 아니고 대부분의 프로그래밍 언어와 코드 에디터에 내장

/regexp/i

/ / : 시작, 종료 기호
regexp : 패턴
i : 플래그

regexp 메서드

  • RegExp.prototype.exec

    • 매칭 결과를 배열로 반환
      매칭 결과가 없는 경우 null 반환
ex) ["is", index: 5, input: "Is this all there is?", groups: undefined]
  • RegExp.prototype.test

    • 인수로 전달받은 문자열에 대해 패턴 검색 후 매칭 결과를 불리언 값으로 반환
  • String.prototype.match

    • string 표준 빌트인 객체가 제공하는 match 메서드는 대상 문자열과 인수로 전달받은 정규 표현식과의 매칭 결과를 배열로 반환

    • exec 메서드는 문자열 내의 모든 패턴을 검색하는 g플래그를 지정해도 첫번째 매칭 결과만 반환
      string.prototype.match 메서드는 g플래그가 지정되면 모든 매칭 결과를 배열로 반환

플래그

플래그의미설명
iIgnore case대소문자를 구별하지 않고 패턴을 검색한다.
gGlobal대상 문자열 내에서 패턴과 일치하는 모든 문자열을 전역 검색한다.
mMulti line문자열의 행이 바뀌더라도 패턴 검색을 계속한다.

.은 임의의 문자 한개
?은 앞선 패턴이 최대 한번(0번 포함) 이상 반복되는 문자열
[] 내의 문자는 or로 동작
\w 는 알파벳, 숫자, 언더스코어를 의미
\w === [A-Za-z0-9]

내가 작성한 정규식

// id (대문자, 소문자, 숫자 중 포함 8~16자
const regExp = /^[A-Za-Z0-9]{8, 16}$/;

// pw (대문자, 소문자, 숫자 필수 포함 5~20자
const regExp = /^(?=.*[A-Z])(?=.*[a-z])(?=.*\d).{8, 30}$/;
profile
이것저것... 차곡차곡...

0개의 댓글