알고리즘 - freeCodeCamp - Convert HTML EntitiesPassed

NO PAIN, NO GAIN·2019년 11월 27일
0

algorithm

목록 보기
7/18

문제

특수 문자 &, <, >, ", '&amp;, &lt;, &gt;, &quot;, &apos; 로 변경하세요.

예시

"Hamburgers < Pizza < Tacos" --> "Hamburgers < Pizza < Tacos"
"Dolce & Gabbana" --> "Dolce & Gabbana"
"Schindler's List" --> "Schindler's List"
"abc" --> "abc"

해결방법

function convertHTML(str) {
  // &colon;&rpar;
  let specialLetter = `&<>"'`
  for (let i = 0; i < str.length; i++) {
    if (specialLetter.search(str[i]) > -1) {
      str = str.replace(str[i], searchChart(str[i]));
    }
  }
  return str;
}

function ampSemi(str) {
  return `&${str};`
}

function searchChart(str) {
  switch (str) {
    case "&" :
    return ampSemi("amp");
    case "<" :
    return ampSemi("lt");
    case ">" :
    return ampSemi("gt");
    case `"` :
    return ampSemi("quot");
    case "'" :
    return ampSemi("apos");
  }
}

변수 선언을 해서 특수 문자를 값으로 할당합니다. 반환값에 &;이 있어서 항상 같은 값을 반환하는 ampSemi함수를 생성합니다. searchChart함수는 switch문을 사용해서 각 특수문자에 맞는 값을 반환하도록 했습니다. convertHTML함수는 반복문을 통해 특수문자가 있는지 확인하고 값을 반환합니다.

profile
갈고 닦자.

0개의 댓글