3

如何从 NodeJS 中的 EJS 模板编码 HTML 属性。我需要做类似的事情:

<img onmouseover=<% myString %> />

然后 myString 将被正确转义并引用为有效属性。

4

2 回答 2

3

你可以试试这个:

npm install node-html-encoder

app.locals.encoder = require('node-html-encoder').Encoder;

<%= encoder.htmlEncode('<foo /> "bar"') %>
于 2012-10-08T19:39:44.557 回答
0

简短的回答:

myString = myString.replace(/'|\\/g, '\\$&');

但是,如果您也需要转义 HTML 特殊字符,您可以尝试:

myString = myString.replace(/&/g, '&amp;');
myString = myString.replace(/</g, '&lt;');
myString = myString.replace(/>/g, '&gt;');

PS 注意不要使用 HTML 字符的替换来转义 JavaScript 运算符!

于 2012-10-08T12:23:00.263 回答