본문 바로가기
기초다지기/Javascript

정규식 RegExp와 사용되는 test 메서드

by 김빵그 2025. 2. 11.
test() 메서드는 정규 표현식 객체의 메서드로, 특정 문자열이 정규 표현식 패턴과 일치하는지 검사하여 일치하면 true, 그렇지 않으면 false 반환

 

기본 문법 

정규식.test(문자열)
regex.test(str)
const regex = /hello/;
const str1 = "hello world";
const str2 = "goodbye world";

console.log(regex.test(str1)); // true
console.log(regex.test(str2)); // false

 

 

그러니까. 코딩테스트를 하다가 소문자는 대문자로, 대문자는 소문자로 바꾸는 문제를 풀다가 

match를 사용해서 풀었는데. 생각해보니 test 메서드가 있던 걸 까먹었다

function solution(my_string) {
    return [...my_string].map((e)=> e.match(new RegExp(/^[A-Z]/)) ? e.toLowerCase() : e.toUpperCase()).join("");
} 

function solution(my_string) {
    return [...my_string].map(e => /[A-Z]/.test(e) ? e.toLowerCase() : e.toUpperCase()).join("");
}

 

예시

이메일 검사

const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
const email = "example@domain.com";

if (emailRegex.test(email)) {
    console.log("유효한 이메일 주소입니다.");
} else {
    console.log("유효하지 않은 이메일 주소입니다.");
}

 

비밀번호 강도 검사

const passwordRegex = /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/;
const password = "Password123";

if (passwordRegex.test(password)) {
    console.log("강력한 비밀번호입니다.");
} else {
    console.log("비밀번호는 최소 8자 이상이며, 문자와 숫자를 모두 포함해야 합니다.");
}

 

 

 

RegExp.prototype.test() - JavaScript | MDN

test() 메서드는 주어진 문자열이 정규 표현식을 만족하는지 판별하고, 그 여부를 true 또는 false로 반환합니다.

developer.mozilla.org

 

주의사항

  • test 메서드는 대소문자를 구분한다. 대소문자를 구분하지 않으려면 정규 표현식에 i 플래그를 추가
  • 정규 표현식에 g 플래그를 사용하면 test 메서드의 연속 호출시 예상치 못한 결과를 얻을 수 있다. 정규 표현식 객체가 상태를 유지하기 때문임.

'기초다지기 > Javascript' 카테고리의 다른 글

javaScript indexOf() 정리  (0) 2025.02.28
javascript 제곱을 다루는 모든 것  (0) 2025.01.22
[javascript] 생성자 함수(Constructor)  (0) 2025.01.20
javascript 에러 예외처리 (try, catch, finally)  (1) 2024.12.20
API  (0) 2024.12.16