最近在做一个输入memo之后保存到数据库,当时没注意,等到上线运行一段时间后发现<p><b>等字符很多,觉得有问题,就去试了一下,输入< @和html标签,我屮艸芔茻(戳),居然给我转译存到db里面去了。后面发现在api里面有个插件对特殊的标签进行了转译。
既然保存成那个鬼样子了,我也吐了,那就硬来吧如下:
html里的innerText和innerHTML其实可以实现相互转译转译(把标签转译成特殊字符) function htmlEncode(html) { var output='' if(html){ var temp = document.createElement("div"); temp.innerText = html output = temp.innerHTML; } return output; } 反转译(把特殊字符转移成标签) function htmlDecode(text) { var output='' if(text){ var temp = document.createElement("div"); temp.innerHTML = text; output = temp.innerText; } return output; } 测试 var htmlText = "<p><b>looper.zhuo</b></p> "; var encodeText = htmlEncode(htmlText); console.log(encodeText);//<p><b>looper.zhuo</b></p> var text = "<p><b>looper.zhuo</b></p> "; var decodeText = htmlDecode(text); console.log(decodeText);//<p><b>looper.zhuo</b></p> ;这样就可以解决一切转译出现的问题哦