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 |