EJS 中的 HTML Tag 转义问题

Posted by Allen on 2015-08-31
Coding

最近在用 Express 开发公司网站,用了 i18n-node-2 这个多语言组件,需要将网站的文字部分都用 JSON 文件储存。遇到一个小问题,如果是带有 HTML 标签的内容,比如:

这里是<a href="#">链接</a>的文字内容

上面这段存到 JSON 数组里的话要转义一下:

"这里是<a href=\"#\">链接</a>的文字内容"

但是在 ejs 模板中输出的时候 HTML tag 总是 output 转义字符串(Escape Sequence):

这里是&lt;a href=&quot;#&quot;&gt;链接&lt;/a&gt;的文字内容

查阅了 ejs 的 github README 文档中有如下介绍:

  • Unbuffered code for conditionals etc <% code %>
  • Escapes html by default with <%= code %>
  • Unescaped buffering with <%- code %>

发现想要 output HTML字符实体(Character Entities)的话只要使用 <%- code %>输出就可以啦!原来这么简单,本来还想是不是设计一个转义函数,瞬间觉得自己萌萌哒 ^_^


相关资料:


Comments: