结果不对function htmlEscape(text){return text.replace(/[<>"&]/g,function(match,pos,originalText){switch(match){case "<":return "<";case ">":return ">";case "&":return "&";case "\"":return """;}});}var test=htmlEscape("<p>something.</p>")document.write(test)百度把lt gt amp这些转换了,return后面是实体
3 回答
月关宝盒
TA贡献1772条经验 获得超5个赞
应该这么写:
function htmlEntities(str) {
return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
}
猛跑小猪
TA贡献1858条经验 获得超8个赞
你应该是需要html编码和解码,我这里有个比较巧妙的方式
1234567891011121314151617181920212223 | //js版 //Html编码获取Html转义实体 function htmlEncode(value) { var e = document.createElement( 'div' ); e.innerText = value; return e.innerHTML; } //Html解码获取Html实体 function htmlDecode(value) { var e = document.createElement( 'div' ); e.innerHTML = value; return e.innerText; } //jQuery版 //Html编码获取Html转义实体 function htmlEncode(value){ return $( '<div/>' ).text(value).html(); } //Html解码获取Html实体 function htmlDecode(value){ return $( '<div/>' ).html(value).text(); } |
添加回答
举报
0/150
提交
取消