[JS] 정규표현식

[JS] 정규표현식

정규 표현식, 또는 정규식은 문자열에서 특정 문자 조합을 찾기 위한 패턴입니다. javascript에서는 정규 표현식도 객체로서, RegExp의 exec()와 test() 메서드를 사용할 수 있습니다.

#01. 정규 표현식 만들기

정규 표현식은 두 가지 방법으로 만들 수 있다.

1. 정규 표현식 리터럴.

슬래시로 패턴을 감싸서 작성한다.

const re = /ab+c/;

정규 표현식 리터럴은 바뀔 일이 없는 패턴의 경우 사용한다.

2. RegExp 객체의 생성자 호출.

const re = new RegExp("ab+c");

생성자 함수를 사용한다.

바뀔 수 있는 패턴이나, 사용자 입력 등 외부 출처에서 가져오는 패턴의 경우 사용한다.

#02. 정규 표현식 패턴 작성하기

정규 표현식 패턴은 /abc/처럼 단순한 문자로 구성하거나, /ab+c//Chapter (\d+)\.\d*/처럼 단순한 문자와 특수 문자의 조합으로 구성할 수도 있다.

특히 (\d+)에 나타난 괄호는 정규 표현식에서 기억 장치처럼 쓰여서, 괄호의 안쪽 패턴과 일치한 부분을 나중에 사용할 수 있도록 기억한다.

#03. 정규표현식을 사용한 문자열 패턴 검사

정규표현식은 그 자체가 객체이며 test(str) 메서드를 포함한다.

이 메서드에 검사하고자 하는 내용을 파라미터로 전달하면 정규표현식을 충족할 경우 true를, 충족하지 않을 경우 false를 리턴한다.

const regex = /정규표현식/;

if (!regex.test(검사할내용)) {
    ... 내용이 정규표현식을 충족하지 않을 경우 실행 ...
}

#04. 자주 사용되는 정규표현식

숫자 모양에 대한 형식 검사

/^[0-9]*$/

영문으로만 구성되었는지에 대한 형식 검사

/^[a-zA-Z]*$/

한글로만 구성되었는지에 대한 형식 검사

/^[-ㅎ가-]*$/

영문과 숫자로만 구성되었는지에 대한 형식 검사

/^[a-zA-Z0-9]*$/

한글과 숫자로만 구성되었는지에 대한 형식 검사

/^[-ㅎ가-힣0-9]*$/

이메일 형식인지에 대한 검사.

아이디@도메인의 형식을 충족해야 한다.

/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i

’-‘없이 핸드폰번호인지에 대한 형식검사.

/^01(?:0|1|[6-9])(?:\d{3}|\d{4})\d{4}$/

’-‘없이 전화번호인지에 대한 형식검사.

각 부분에 대한 자리수도 충족시켜야 한다.

/^\d{2,3}\d{3,4}\d{4}$/
호쌤(이광호)'s Picture

About 호쌤(이광호)

메가스터디IT아카데미에서 Java, Spring, Python, Frontend 등을 강의하는 IT 전문 강사이자 프리렌서 개발자 입니다.
https://www.youtube.com/@hossam-codingclub

Seoul, Korea http://www.hossam.kr