알아두면 유용한 Regex 리스트와 match, matchAll
2025. 4. 16. 16:22
728x90
반응형

 

Regex (정규표현식)

 

Regex (정규표현식)

Regex ( Regular Expression )문자열에서 패턴을 검색하거나 대체할 때 사용되는 강력한 도구입니다. 수십 줄의 조건문을 정규식 한 줄로 표현 가능할 정도로 짧고 간결한 코드 구성에 용이합니다.문자

jkh2801.tistory.com

 

숫자

// 오직 숫자만
const num_reg = /^\d+$/

// 실수
const real_number_reg = /^-?\d+(\.\d+)?$/

// 정수
const integer_reg = /^-?\d+$/

// 양의 정수 (0은 포함안함)
const pos_integer_reg = /^[1-9]\d*$/

// 음의 정수 (0은 포함안함)
const neg_integer_reg = /^-[1-9]\d*$/

이메일 ( Email )

const email_reg = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/

비밀번호 ( Password )

const password_reg = /^(?=.*[A-Za-z])(?=.*\d)(?=.*[!@#$%^&*])[A-Za-z\d!@#$%^&*]{8,20}$/
// 최소 하나의 영문자, 숫자, 특수문자를 포함한 8~20자리

핸드폰 ( Phone )

const phone_reg = /^01[0-9]-?\d{3,4}-?\d{4}$/
// 010-1234-5678 or 01012345678

웹 주소 ( URL )

const url_reg = /^https?:\/\/[^\s$.?#].[^\s]*$/
// https , http 둘 다 통과

 


Match

  • 문자열에서 정규식 패턴에 일치하는 값을 찾아주는 메서드
  • `string.match(regexp)형식으로 사용되며, 주로 문자열에서 특정 패턴을 찾거나, 일치 여부를 확인할 때 사용합니다.
  • 정규식에 플래그 유무에 따라 결과 형식이 달라집니다.
    • 플래그가 없는 경우, RegExpMatchArray로 리턴
    • 플래그가 있는 경우, 단순 문자열 배열로 리턴
// 플래그가 없는 경우
const result = "abc abc abc".match(/abc/);

console.log(result); 
// ["abc", index: 0, input: "abc abc abc", groups: undefined]
// 리턴은 배열이지만, 첫 번째 매칭만 반환


// 플래그가 있는 경우
const result2 = "The price is 30 dollars and 50 cents".match(/\d+/g); // 모든 숫자 추출
console.log(result2); 
// ["30", "50"]
// 플래그 g가 있기 때문에 모든 숫자를 추출합니다.

MatchAll

  • 문자열에서 정규식 패턴에 일치하는 패턴 그룹을 찾아주는 메서드
  • `string.matchAll(regexp)형식으로 사용되며, 반드시 정규식에 `g` 플래그가 포함되어 있어야 합니다.
const str = "foo:123, bar:456";
const matches = [...str.matchAll(/(\w+):(\d+)/g)];
// matchAll은 이터레이터로 리턴되기 때문에, 전개 연산자 (...) 또는 for ... of으로 순회가 가능합니다.

console.log(matches);
/*
[
  [ 'foo:123', 'foo', '123' ],
  [ 'bar:456', 'bar', '456' ]
]
*/

Match vs MatchAll 정리

  match matchAll
플래그 여부 /pattern/ (플래그 없음) /pattern/g (플래그 있음) /pattern/g (플래그 필수)
매칭 첫 번째만 매칭 전체 매칭 전체 매칭
결과 첫 번재 매칭 값을 RegExpMatchArray로 반환 문자열 배열로 반환 이터레이터 반환
`[...str.matchAll(pattern)]`
728x90
반응형

'javascript' 카테고리의 다른 글

javascript 변수 : var / let / const  (0) 2025.04.18
Regex (정규표현식)  (1) 2025.04.10
Single Thread와 Javascript  (0) 2025.03.31