如何编码HTML元素属性

时间:2012-10-08 09:11:22

标签: node.js ejs

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

<img onmouseover=<% myString %> />

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

2 个答案:

答案 0 :(得分:3)

你可以试试这个:

npm install node-html-encoder

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

<%= encoder.htmlEncode('<foo /> "bar"') %>

答案 1 :(得分:0)

简短回答:

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

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

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

P.S。注意不要使用HTML字符的替换来逃避JavaScript运算符!