最近在用 Express 开发公司网站,用了 i18n-node-2 这个多语言组件,需要将网站的文字部分都用 JSON 文件储存。遇到一个小问题,如果是带有 HTML 标签的内容,比如:
这里是<a href="#">链接</a>的文字内容
上面这段存到 JSON 数组里的话要转义一下:
"这里是<a href=\"#\">链接</a>的文字内容"
但是在 ejs 模板中输出的时候 HTML tag 总是 output 转义字符串(Escape Sequence):
这里是<a href="#">链接</a>的文字内容
查阅了 ejs 的 github README 文档中有如下介绍:
- Unbuffered code for conditionals etc
<% code %>
- Escapes html by default with
<%= code %>
- Unescaped buffering with
<%- code %>
发现想要 output HTML字符实体(Character Entities)的话只要使用 <%- code %>
输出就可以啦!原来这么简单,本来还想是不是设计一个转义函数,瞬间觉得自己萌萌哒 ^_^
相关资料: