Programming/Client

[Javascript] 특정 문자 걸러내는 함수 만들기

Jiwoo 2022. 3. 16. 15:32

문제

str에 'viagra’나 'XXX’라는 문자열이 있으면 true를 반환해주는 함수 checkSpam(str)을 만들어보세요. 해당 문자열이 없으면 false를 반환하면 됩니다.

함수는 대·소문자 관계없이 해당 단어를 걸러주어야 합니다.

checkSpam('buy ViAgRA now') == true
checkSpam('free xxxxx') == true
checkSpam("innocent rabbit") == false

 

나의 풀이

function checkSpam(str) {
  let upperStr = str.toUpperCase();
  return (
    upperStr.includes("viagra".toUpperCase()) ||
    upperStr.includes("XXX".toUpperCase())
  );
}

alert(checkSpam("buy ViAgRA now"));

str.includes() 메소드는 대소문자를 구별하므로 인자 문자열들을 모두 대문자 or 소문자로 바꿔주는 과정이 필요하다.
나는 대문자를 선택했지만 소문자여도 상관없다.

 

해답

function checkSpam(str) {
  let lowerStr = str.toLowerCase();

  return lowerStr.includes('viagra') || lowerStr.includes('xxx');
}

alert( checkSpam('buy ViAgRA now') );

해답은 아예 검색어를 소문자로 바꿔서 썼는데, 나의 풀이가 더 유연한 답이 될 것 같다.

 


참고

https://ko.javascript.info/string

 

문자열

 

ko.javascript.info