前端开发工作中,经常需要将HTML的左右尖括号等转义成实体形式。我们不能把,&等直接显示在最终看到的网页里。需要将其转义后才能在网页上显示。
“”等符号已经用来表示HTML TAG,因此不能直接当作文本中的符号来使用。但有时需求是在HTML页面上使用这些符号,所以需要定义它的转义字符串。
有些字符在ASCII字符集中没有定义(如版权符号“©”)。因此需要使用转义字符(“©”对应的转义字符是“©”)来表示。
这里提供两个函数escape和unescape,分别实现将HTML转义为实体和回转。
方式一、一个映射表+正则替换
var keys = Object.keys || function(obj) {
obj = Object(obj)
var arr = []
for (var a in obj) arr.push(a)
return arr
}
var invert = function(obj) {
obj = Object(obj)
var result = {}
for (var a in obj) result[obj[a]] = a
return result
}
var entityMap = {
escape: {
'&': '&',
'
'>': '>',
'"': '"',
"'":