FRONT-END

[JavaScript] JavaScript 기초 7 (정규식)

gudwns5533 2026. 6. 22. 16:25

정규식

정규식이란?

정규 표현식은 문자열에서 특정한 패턴을 찾거나, 올바른 형식인지 검사하거나, 원하는 형태로 치환하기 위해 사용하는 정형화된 표현식이다.

정규 표현식의 생성 방식

  • 리터럴 방식 : /패턴/옵션
  • 생성자 방식 : new RegExp("패턴",  "옵션")

패턴의 종류

a: 문자 a
abc: 문자열abc
.: 아무 문자 1개
[abc]: a 또는 b 또는 c
[a-z]: a 부터 z
[가-힣]: 한글
[0-9]: 숫자
[^0-9]: 숫자가 아닌 문자
*: 0번 이상
+: 1번 이상
?: 0 또는 1
{n}: 정확히 n번
{n,}: n번 이상
{n.m}: n~m번
^: 문자열 시작
$: 문자열 끝
\d: 숫자
\D: 숫자 아님
\w: 문자 또는 숫자 또는 _
\W: 문자 또는 숫자 또는 _ 외 문자
\s: 공백
\S: 공백 아닌 문자
g: 전체 검색
i: 대소문자 무시
m: 여러 줄 처리


(?=.*): 어디엔가 원하는 패턴이 하나라도 있어야 함
(?=.*[A-Za-z]): 영문자가 최소 1개 이상 있어야 함
(?=.*\d): 숫자가 최소 1개 이상 있어야 함
(?=.*[!@#$%^&*()]): 제시된 특수 문자중 최소 1개 이상 있어야 함

정규식 메서드

reg.test(string)

패턴에 문자열이 존재하면 true, 없으면 false를 반환한다.

const reg = /^[0-9]+$/
reg.test("a123") // false
reg.test("1234") // true

 

string.match(reg)

문자열에서 정규식과 일치하는 부분을 찾아 배열로 반환한다.

"abc123".match(/\d+/) // ["123"]

const result = "abc123xyz456".match(/\d+/g); 
console.log(result); // ["123", "456"]

 

string.replace(reg, replacement)

패턴과 일치하는 부분을 원하는 문자열로 교체한다.

"010-1234-5678".replace(/-/g, "") //01012345678

 

string.search(reg)

패턴이 발견되는 인덱스 번호를 반환한다.

"hello".search(/e/) // 1