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 に答える