在 HTML 中,某些字符是预留的。 比如HTML 中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签。 如果希望正确地显示预留字符,我们必须在 HTML 源代码中使用字符实体(character entities)。 在比如,你在HTML源码中想打一个空格,并在页面中显示这个空格。在源码中直接打空格是不会显示的。只能用实体字符 这个来表示。才能在网站中显示。
将正常字符转为字符实体
// 'hehe' => 'hehe'
function stringToEntity(str,radix){
var arr = str.split('')
radix = radix||0
var tmp = ''
for(var i=0;i<arr.length;i++){
var item = arr[i]
var str = '&#'+(radix?'x'+item.charCodeAt(0).toString(16):item.charCodeAt(0))+';'
tmp += str
}
return tmp
}
将字符实体转为正常字符
// 'hehe' => 'hehe'
function entityToString(entity) {
var entities = entity.split(';')
entities.pop()
var tmp = ''
for (var i = 0; i < entities.length; i++) {
var num = entities[i].trim().slice(2)
if (num[0] === 'x')//10进制还是16进制
num = parseInt(num.slice(1), 16);
else num = parseInt(num);
tmp += String.fromCharCode(num)
}
return tmp
}
使用
var str = 'hehe'
console.log(stringToEntity(str,1))

