특정 문자 포함 여부를 확인하는 정규식 규칙(리터럴)을 매번 헷갈려 정리해보았다.
정규식 메서드
test()
test() 메서드를 활용해 주어진 문자열이 정규 표현식을 만족하는지 판별하고, 그 여부를 true 또는 false로 반환한다.
const regex = /coffee/;
const txt = "I love coffee";
console.log(regex.test(txt));
// true
match()
문자열에서 정규 표현식에 매칭 되는 항목들을 배열로 반환한다.
const regex = /coffee/;
const txt = "I love coffee";
console.log(txt.match(regex));
//["coffee"]
replace()
정규 표현식에 매칭되는 항목을 대체 문자열로 반환한다.
console.log(txt.replace(regex, "water"));
// "I love water"
exec()
문자열을 정규 표현식에 매칭되는 항목으로 쪼개어 배열로 반환한다.
const regex = /coffee/;
const txt = "I love coffee coffee";
console.log((regex).exec(txt));
// ["coffee"]
정규식 구성
슬래쉬 문자 두개 사이로 정규식 기호가 들어가는 형태로 뒤의i 는 정규식 플래그이다.
/regexr/i
플래그 종류
g : Global 의 표현하며 대상 문자열내에 모든 패턴들을 검색하는 것을 의미한다.
i : Ignore case 를 표현하며 대상 문자열에 대해서 대/소문자를 식별하지 않는 것을 의미한다.
m : Multi line을 표현하며 대상 문자열이 다중 라인의 문자열인 경우에도 검색하는 것을 의미한다.
정규식 사용 예시
/[0-9]/g : 0~9 사이의 아무 숫자 ‘하나’를 찾는다.
/123/ : "123" 라는 연속된 문자열을 찾는다. (정확하게 "05"인 문자열 - 순서 상관있음)
/[01]/: "0" 또는 "1"가 나오는 경우를 모두 찾는다 (0 또는 1를 독립적으로 취급해 순서 상관없음)
/^[01]/: 문자열의 시작 부분에 "0" 또는 "1"가 있는 경우 (0 또는 5를 독립적으로 취급해 순서 상관없음)
/^[01]$/: 문자열의 전체가 단일한 "0"또는 "1"로 이루어진 경우 (문자열의 길이가 1이고 값이 0 또는 1인 경우)
/^[05]+$/: 문자열의 전체가 "0"또는 "5"로 이루어진 경우 (문자열의 길이 1이상 임)
const txt = ['0','1', '9','123', '4560', '111', '555', '666', '777'];
const regex = /123/;
console.log(txt.filter((x) => regex.test(x)));
// ["123"]
const regex = /[01]/;
console.log(txt.filter((x) => regex.test(x)));
// ["0","1","123","4560"]
const regex = /^[01]/;
console.log(txt.filter((x) => regex.test(x)));
// ["0","1","123"]
const regex = /^[01]$/;
console.log(txt.filter((x) => regex.test(x)));
// ["0","1"]
const regex = /^[01]+$/;
console.log(txt.filter((x) => regex.test(x)));
// ["0","1","111"]
정규식 테스트 사이트
참고
'Javascript' 카테고리의 다른 글
fill() 메서드 (0) | 2024.09.09 |
---|---|
비디오 addEventListener (0) | 2024.09.09 |
알파벳 배열 만들기 (0) | 2024.09.06 |
하단 이동 버튼 (0) | 2024.09.06 |
Javascript 수학 계산 (0) | 2024.09.05 |