如何编码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, '&'); myString = myString.replace(/</g, '<'); myString = myString.replace(/>/g, '>');
PS注意不要使用HTML字符的替代品逃脱JavaScript运算符!