沙滩星空的博客沙滩星空的博客

JS对HTML实体字符转义和反转义

后端对 包含 & 字符的 url 链接,保存到数据库时,& 会自动被转义成 &
前者是html代码字符, 后者是HTML实体字符。

数据库中被转义的 url ,在后台网页中,由于 html实体 被浏览器识别,故能正常显示。
而前端通过API接口获取的 url ,则是包含 &html实体 字符串。
故须将 转义字符 还原成 html字符

JS似乎并未自带转义html实体字符的功能,下面是网友封装的转义函数。

/**
 *  把html转义成HTML实体字符
 * @param str
 * @returns {string}
 * @constructor
 */
function htmlEncode(str) {
  var s = "";
  if (str.length === 0) {
    return "";
  }
  s = str.replace(/&/g, "&");
  s = s.replace(/</g, "&lt;");
  s = s.replace(/>/g, "&gt;");
  s = s.replace(/ /g, "&nbsp;");
  s = s.replace(/\'/g, "&#39;");//IE下不支持实体名称
  s = s.replace(/\"/g, "&quot;");
  return s;
}
 
/**
 *  转义字符还原成html字符
 * @param str
 * @returns {string}
 * @constructor
 */
function htmlRestore(str) {
  var s = "";
  if (str.length === 0) {
    return "";
  }
  s = str.replace(/&amp;/g, "&");
  s = s.replace(/&lt;/g, "<");
  s = s.replace(/&gt;/g, ">");
  s = s.replace(/&nbsp;/g, " ");
  s = s.replace(/&#39;/g, "\'");
  s = s.replace(/&quot;/g, "\"");
  return s;
}

JS对HTML实体字符转义和反转义 https://www.cnblogs.com/LChenglong/p/12030514.html
全部HTML实体字符表 https://www.w3school.com.cn/tags/html_ref_entities.html

未经允许不得转载:沙滩星空的博客 » JS对HTML实体字符转义和反转义

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址