reactjs 如何用字符串字符[duplicate]替换HTML实体

jei2mxaa  于 2023-08-04  发布在  React
关注(0)|答案(3)|浏览(126)

此问题在此处已有答案

Convert HTML Character Entities back to regular text using javascript(6个答案)
昨天关门了。
我有一个包含多个不同HTML字符的字符串。
举例来说:

var price = "CHF 150.– (brutto)";

字符串
我如何用下面的字符串替换HTML实体,如–

"CHF 150.- (brutto)";

q9rjltbz

q9rjltbz1#

function replaceHTMLEntities(str) {
  const htmlEntities = {
    '&': '&',
    '&lt;': '<',
    '&gt;': '>',
    '&quot;': '"',
    '&#039;': "'",
    '&ndash;': '-',
  };

  return str.replace(/&[\w#]+;/g, entity => {
    return htmlEntities[entity] || entity;
  });
}

字符串

ioekq8ef

ioekq8ef2#

你可以像这样使用replace()方法:

price.replace('&ndash', '-');

字符串
MDN Web Docs - String.prototype.replace()

mkshixfv

mkshixfv3#

您可以使用本机DOMParser对其进行解码。
我创建了一个可以重用的 Package 器类:

// Based on: https://stackoverflow.com/a/34064434/1762224
class HTMLDecoder {
  constructor() {
    this.parser = new DOMParser();
  }
  decode(input) {
    const doc = this.parser.parseFromString(input, 'text/html');
    return doc.documentElement.textContent;
  }
}

const decoder = new HTMLDecoder(),
      price   = "CHF 150.&ndash; (brutto)";

console.log(decoder.decode(price));

console.log(decoder.decode('&copy; 2023 &quot;Hello World&quot;'));

字符串

相关问题