【问题标题】:<%- %> not escaping special characters<%- %> 不转义特殊字符
【发布时间】:2020-12-29 17:04:25
【问题描述】:

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

我遇到的所有内容都说只使用&lt;%- %&gt;,所以我尝试&lt;%- business %&gt; 并显示Jack&amp;。就是这样。

谁能看到我做错了什么?感谢观看 =)

【问题讨论】:

  • &lt;%= unescape(business) %&gt;

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


【解决方案1】:

您可以解码#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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    • 2019-01-29
    • 2018-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多