Files
2022-01-20 20:30:18 +01:00

2.0 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
a6b0bb188d873cb2c8729495 HTML エンティティに変換する 5 16007 convert-html-entities

--description--

文字列中の文字 &<>" (二重引用符)、' (アポストロフィー) を、それぞれ対応する HTML エンティティに変換してください。

--hints--

convertHTML("Dolce & Gabbana") は、文字列 Dolce &amp; Gabbana を返す必要があります。

assert.match(convertHTML('Dolce & Gabbana'), /Dolce &amp; Gabbana/);

convertHTML("Hamburgers < Pizza < Tacos") は、文字列 Hamburgers &lt; Pizza &lt; Tacos を返す必要があります。

assert.match(
  convertHTML('Hamburgers < Pizza < Tacos'),
  /Hamburgers &lt; Pizza &lt; Tacos/
);

convertHTML("Sixty > twelve") は、文字列 Sixty &gt; twelve を返す必要があります。

assert.match(convertHTML('Sixty > twelve'), /Sixty &gt; twelve/);

convertHTML('Stuff in "quotation marks"') は、文字列 Stuff in &quot;quotation marks&quot; を返す必要があります。

assert.match(
  convertHTML('Stuff in "quotation marks"'),
  /Stuff in &quot;quotation marks&quot;/
);

convertHTML("Schindler's List") は、文字列 Schindler&apos;s List を返す必要があります。

assert.match(convertHTML("Schindler's List"), /Schindler&apos;s List/);

convertHTML("<>") は、文字列 &lt;&gt; を返す必要があります。

assert.match(convertHTML('<>'), /&lt;&gt;/);

convertHTML("abc") は、文字列 abc を返す必要があります。

assert.strictEqual(convertHTML('abc'), 'abc');

--seed--

--seed-contents--

function convertHTML(str) {
  return str;
}

convertHTML("Dolce & Gabbana");

--solutions--

var MAP = { '&': '&amp;',
            '<': '&lt;',
            '>': '&gt;',
            '"': '&quot;',
            "'": '&apos;'};

function convertHTML(str) {
  return str.replace(/[&<>"']/g, function(c) {
    return MAP[c];
  });
}