2018-10-04 14:37:37 +01:00
---
id: a6b0bb188d873cb2c8729495
title: Convert HTML Entities
isRequired: true
challengeType: 5
2019-07-31 11:32:23 -07:00
forumTopicId: 16007
2018-10-04 14:37:37 +01:00
---
## Description
<section id='description'>
Convert the characters <code>&</code>, <code><</code>, <code>></code>, <code>"</code> (double quote), and <code>'</code> (apostrophe), in a string to their corresponding HTML entities.
</section>
## Instructions
<section id='instructions'>
</section>
## Tests
<section id='tests'>
```yml
tests:
2020-05-02 20:25:55 +06:00
- text: <code>convertHTML("Dolce & Gabbana")</code> should return <code>"Dolce &amp; Gabbana"</code>.
2019-02-21 21:28:05 -08:00
testString: assert.match(convertHTML("Dolce & Gabbana"), /Dolce & Gabbana/);
2020-05-02 20:25:55 +06:00
- text: <code>convertHTML("Hamburgers < Pizza < Tacos")</code> should return <code>"Hamburgers &lt; Pizza &lt; Tacos"</code>.
2019-02-21 21:28:05 -08:00
testString: assert.match(convertHTML("Hamburgers < Pizza < Tacos"), /Hamburgers < Pizza < Tacos/);
2020-05-02 20:25:55 +06:00
- text: <code>convertHTML("Sixty > twelve")</code> should return <code>"Sixty &gt; twelve"</code>.
2019-02-21 21:28:05 -08:00
testString: assert.match(convertHTML("Sixty > twelve"), /Sixty > twelve/);
2020-05-02 20:25:55 +06:00
- text: <code>convertHTML('Stuff in "quotation marks"')</code> should return <code>"Stuff in &quot;quotation marks&quot;"</code>.
2019-02-21 21:28:05 -08:00
testString: assert.match(convertHTML('Stuff in "quotation marks"'), /Stuff in "quotation marks"/);
2020-05-02 20:25:55 +06:00
- text: <code>convertHTML("Schindler's List")</code> should return <code>"Schindler&apos;s List"</code>.
2019-02-21 21:28:05 -08:00
testString: assert.match(convertHTML("Schindler's List"), /Schindler's List/);
2020-05-02 20:25:55 +06:00
- text: <code>convertHTML("<>")</code> should return <code>"&lt;&gt;"</code>.
2019-02-21 21:28:05 -08:00
testString: assert.match(convertHTML('<>'), /<>/);
2020-05-02 20:25:55 +06:00
- text: <code>convertHTML("abc")</code> should return <code>"abc"</code>.
2019-02-21 21:28:05 -08:00
testString: assert.strictEqual(convertHTML('abc'), 'abc');
2018-10-04 14:37:37 +01:00
```
</section>
## Challenge Seed
<section id='challengeSeed'>
<div id='js-seed'>
```js
function convertHTML(str) {
return str;
}
convertHTML("Dolce & Gabbana");
```
</div>
</section>
## Solution
<section id='solution'>
```js
var MAP = { '&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": '''};
function convertHTML(str) {
return str.replace(/[&<>"']/g, function(c) {
return MAP[c];
});
}
```
</section>