如何编码HTML元素属性

如何在NodeJS中对来自EJS模板的HTML属性进行编码。 我需要做这样的事情:

<img onmouseover=<% myString %> /> 

myString将被正确地转义和引用成为一个有效的属性。

你可以试试这个:

 npm install node-html-encoder app.locals.encoder = require('node-html-encoder').Encoder; <%= encoder.htmlEncode('<foo /> "bar"') %> 

简短的回答:

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

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

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

PS注意不要使用HTML字符的替代品逃脱JavaScript运算符!