在 JavaScript 中解码 HTML 实体?

发布于 2024-09-01 06:16:05 字数 116 浏览 5 评论 0原文

示例转换:

 & -> `&`
 >  -> `>`

有什么小型库函数可以处理这个问题吗?

Sample conversions:

 & -> `&`
 >  -> `>`

Any small library function that can handle this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

何处潇湘 2024-09-08 06:16:06

我的实用腰带上总是有这个小功能:

function htmlDecode(input){
  var e = document.createElement('div');
  e.innerHTML = input;
  return e.childNodes[0].nodeValue;
}

htmlDecode("&"); // "&"
htmlDecode(">"); // ">"

它将适用于所有 HTML 实体< /a>.

编辑:由于您不在 DOM 环境中,我认为您必须通过“硬”方式来完成:

function htmlDecode (input) {
  return input.replace(/&/g, "&")
              .replace(/</g, "<")
              .replace(/>/g, ">");
              //...
}

如果您不喜欢链式替换,您可以构建一个对象来存储您的实体,例如:

function htmlDecode (input) {
  var entities= {
    "&": "&",
    "<": "<",
    ">": ">"
    //....
  };

  for (var prop in entities) {
    if (entities.hasOwnProperty(prop)) {
      input = input.replace(new RegExp(prop, "g"), entities[prop]);
    }
  }
  return input;
}

I have on my utility belt this tiny function always:

function htmlDecode(input){
  var e = document.createElement('div');
  e.innerHTML = input;
  return e.childNodes[0].nodeValue;
}

htmlDecode("&"); // "&"
htmlDecode(">"); // ">"

It will work for all HTML Entities.

Edit: Since you aren't in a DOM environment, I think you will have to do it by the "hard" way:

function htmlDecode (input) {
  return input.replace(/&/g, "&")
              .replace(/</g, "<")
              .replace(/>/g, ">");
              //...
}

If you don't like the chained replacements, you could build an object to store your entities, e.g.:

function htmlDecode (input) {
  var entities= {
    "&": "&",
    "<": "<",
    ">": ">"
    //....
  };

  for (var prop in entities) {
    if (entities.hasOwnProperty(prop)) {
      input = input.replace(new RegExp(prop, "g"), entities[prop]);
    }
  }
  return input;
}
好多鱼好多余 2024-09-08 06:16:06

用 JavaScript 编写的强大的 HTML 实体编码器/解码器。

https://mths.be/he

he(对于“HTML 实体”)是一个用 JavaScript 编写的强大的 HTML 实体编码器/解码器。它支持所有符合 HTML 的标准化命名字符引用 ,处理不明确的&符号和其他边缘情况就像浏览器一样,有一个广泛的测试套件,并且 - 与许多其他 JavaScript 解决方案相反 - < em>他可以很好地处理星体 Unicode 符号。 提供在线演示。

A robust HTML entity encoder/decoder written in JavaScript.

https://mths.be/he

he (for “HTML entities”) is a robust HTML entity encoder/decoder written in JavaScript. It supports all standardized named character references as per HTML, handles ambiguous ampersands and other edge cases just like a browser would, has an extensive test suite, and — contrary to many other JavaScript solutions — he handles astral Unicode symbols just fine. An online demo is available.

歌入人心 2024-09-08 06:16:06

看起来这样可以:

function html_entity_decode(s) {
  var t=document.createElement('textarea');
  t.innerHTML = s;
  var v = t.value;
  t.parentNode.removeChild(t);
  return v;
}

来源

Looks like this will do:

function html_entity_decode(s) {
  var t=document.createElement('textarea');
  t.innerHTML = s;
  var v = t.value;
  t.parentNode.removeChild(t);
  return v;
}

Source

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文