<%- %> 不转义特殊字符

时间:2020-12-24 23:16:53

标签: node.js mongodb express ejs special-characters

我有一个表单,用户可以在其中注册并创建一个帐户,任何特殊字符都可以像这样 business: "Jack&#x27;s Cereal Shack" (Jack's Cereal Shack) 保存到我的 mongoDB 中。这很好,我理解为什么它在我的 mongoDB 中看起来是这样,但是我无法转义 ejs 中的特殊字符。

我所遇到的一切都说只使用 <%- %>,所以我尝试使用 <%- business %> 并显示 Jack&。就是这样。

谁能看出我做错了什么?感谢您的关注 =)

1 个答案:

答案 0 :(得分:0)

您可以解码 #x27; 十六进制字符代码。

const business = 'Jack&#x27;s Cereal Shack';
const REG_HEX = /&#x([a-fA-F0-9]+);/g;

function decodeHex(val) {
  return val.replace(REG_HEX, function (match, group1) {
    const num = parseInt(group1, 16); //=> 39
    return String.fromCharCode(num); //=> '
  });
}

const businessDecoded = decodeHex(business);
console.log(businessDecoded);  //=> Jack's Cereal Shack
相关问题