前段时间做项目的时候,要使用富文本编辑器,采用的是wangEditor,结果当用户在为文本添加样式的时候,发现居然无法直接保存,遂查看后台数据。发现很多样式都被过滤掉了,后台接受的数据中根本没有样式。在网上浏览一番,发现主要是样式标签中 < 和 > 导致的,只要转义和反转义即可解决问题。
例如:要发送值后台的文本为text,则在传入后台时修改为text.replace(//g, ">")。若要进行反转义,则可以表示为text.replace(/</g, "")。
另外,还发现当使用空格为文本添加缩进时,会同样出现无法保存样式的问题,查看了后台数据库发现对于空格,其表示为 ,想着也比较简单,直接在原来的基础上再次使用两次replace()即可,即text.replace(/</g, "").replace(/&/g, "&").replace(/ /g, " "),但是在前端发现虽然文本中有空格,但是在html中无法直接显示,当时我tm……后来想想,其实不需要最后一个replace()函数的,因为浏览器在解析html文件时会自动将 解释成空格的,即使用text.replace(/</g, "").replace(/&/g, "&")即可。