2018-10-04 14:37:37 +01:00
---
id: a6b0bb188d873cb2c8729495
title: Convert HTML Entities
isRequired: true
challengeType: 5
2020-05-21 17:31:25 +02:00
isHidden: false
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 & lt ; Pizza & lt ; 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 >