i18next/react-i18next

View on GitHub
src/unescape.js

Summary

Maintainability
A
0 mins
Test Coverage
// unescape common html entities

const matchHtmlEntity =
  /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;

const htmlEntities = {
  '&': '&',
  '&': '&',
  '&lt;': '<',
  '&#60;': '<',
  '&gt;': '>',
  '&#62;': '>',
  '&apos;': "'",
  '&#39;': "'",
  '&quot;': '"',
  '&#34;': '"',
  '&nbsp;': ' ',
  '&#160;': ' ',
  '&copy;': '©',
  '&#169;': '©',
  '&reg;': '®',
  '&#174;': '®',
  '&hellip;': '…',
  '&#8230;': '…',
  '&#x2F;': '/',
  '&#47;': '/',
};

const unescapeHtmlEntity = (m) => htmlEntities[m];

export const unescape = (text) => text.replace(matchHtmlEntity, unescapeHtmlEntity);