html符号转实体算法挑战
问题:
将字符串中的字符 &
、<
、>
、"
(双引号), 以及 '
(单引号)转换为它们对应的 HTML 实体。
要求:
convert("Dolce & Gabbana")
应该返回 Dolce & Gabbana
。
convert("Hamburgers < Pizza < Tacos")
应该返回 Hamburgers < Pizza < Tacos
。
convert("Sixty > twelve")
应该返回 Sixty > twelve
。
convert('Stuff in "quotation marks"')
应该返回 Stuff in "quotation marks"
。
convert("Shindler's List")
应该返回 Shindler's List
。
convert("<>")
应该返回 <>
。
convert("abc")
应该返回 abc
。
问题答案:
// :)
var entityMap = {
'&' : '&',
'<' : '<',
'>' : '>',
'"' : '"',
"'" : '''
};
//新建一个以对象key为基础的正则匹配项,这样再增加更多的实体也比较好拓展了
var regexp = new RegExp ('['+Object.keys(entityMap).join('')+']','g');
return str.replace(regexp,function(matched){
return entityMap[matched];
});
题目链接:
https://www.w3cschool.cn/codecamp/convert-html-entities.html