我有一组 JavaScript 对象,我引导到后端模板以在页面加载时初始化我的 Backbone.js 集合。它看起来像这样(作为 Twig 模板):
<script type="text/javascript">
(function() {
var jobCollection = new App.Collections.Item(
{% for item in items %}
{
name: '{{ item.name }}',
...
},
{% endfor %}
);
})();
</script>
我遇到的问题是某些文本字段包含破坏 JavaScript 的 \u200b (零宽度空间)。
逃避这些角色的最佳方法是什么?我应该在后端转义它们(我使用带有 Twig 的 Symfony 2 来呈现初始模板)还是应该在客户端使用 JavaScript 转义它们?如何在 JavaScript 或 PHP 中转义零宽度空格字符和其他字符?