[코테] 옹알이 (1) + 정규 표현식

fejigu·2024년 3월 25일
1

알고리즘 & 자료구조

목록 보기
24/24



🔎 정규 표현식(Regular Expressions)

📍정규 표현식이란

: 텍스트에서 패턴을 찾고 일치하는 문자열을 식별하는데 사용되는 도구. 활용 시 다양한 문자열 작업을 간단하게 수행 가능.

📍정규 표현식의 사용 사례 3가지

1. 문자열 검색과 추출

: 특정 패턴이나 문자열을 찾고 추출하는데 사용.
case) 이메일 주소, 전화번호, URL

const text = "이메일 주소는 example@example.com 입니다.";
const emailRegex = /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/;

const email = text.match(emailRegex);
console.log(email); // ["example@example.com"]

2. 데이터 유효성 검사

: 사용자로부터 받은 데이터의 형식을 검사하거나 유효성을 검증.
case) 이메일 주소, 비밀번호, 사용자 이름 형식 등

// 비밀번호
const password = "Fejigu123$"
// 비밀번호 조건 충족하는지
const passwordRegex =  /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/; 
// ^ : 문자열의 시작
// (?=.*[a-z]) : 최소 하나의 소문자 포함
// (?=.*[A-Z]) : 최소 하나의 대문자 포함
// (?=.*\d) : 최소 하나의 숫자 포함
// [a-zA-Z\d]{8,} : 소문자, 대문자, 숫ㄱ자 중 하나 이상 포함하는 8자 이상 문자열
// $ : 문자열의 끝 

if (passwordRegex.test(password)) { //test 메서드는 문자열이 정규표현식과 일치하는지 여부를 확인
    console.log("비밀번호가 유효합니다.");
} else {
    console.log("비밀번호는 최소 8자 이상이어야 하며, 최소 하나의 대문자, 소문자, 숫자를 포함해야 합니다.");
}

3. 텍스트 처리 및 대체

: 텍스트에서 특정 패턴을 찾아 다른 문자열로 대체하는 데 사용
case) 텍스트의 일부를 삭제하거나 대체하는 작업 등

const text = "나는 수박과 딸기와 망고를 좋아합니다.";
const replacedText = text.replace(/수박|딸기/망고/g, "과일");
console.log(replacedText); // "나는 과일과 과일와 과일를 좋아합니다."



💻 코딩테스트 연습 - 옹알이 (1) | 프로그래머스 스쿨

머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "ye", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.

function solution(babbling) {
  var answer = 0;
  const Arr = /^(aya|ye|woo|ma)+$/; 
  //(aya|ye|woo|ma) : aya, ye, woo, ma 중 하나가 나오는 문자열
  //+ : 패턴이 한번 이상 반복 가능
  babbling.forEach(word => { // 배열의 각 요소에 대해 제공된 함수를 호출하며, 배열의 각 요소를 처음부터 끝까지 반복
  	if (Arr.test(word)) answer++; //정규표현식을 사용하여 문자열과 일치 여부를 확인, answer 변수를 증가![](https://velog.velcdn.com/images/fejigu/post/8f4aedb8-9024-41ac-9ef0-265e4f3d8d67/image.png)

  })
  
	return answer;
}
profile
console.log(frontendjigu( ☕️, 📱); // true

0개의 댓글