Skip to content

Instantly share code, notes, and snippets.

@CatTail
Created November 30, 2012 08:27
Show Gist options
  • Save CatTail/4174511 to your computer and use it in GitHub Desktop.
Save CatTail/4174511 to your computer and use it in GitHub Desktop.
Javascript: encode(decode) html text into html entity
// encode(decode) html text into html entity
var decodeHtmlEntity = function(str) {
return str.replace(/&#(\d+);/g, function(match, dec) {
return String.fromCharCode(dec);
});
};
var encodeHtmlEntity = function(str) {
var buf = [];
for (var i=str.length-1;i>=0;i--) {
buf.unshift(['&#', str[i].charCodeAt(), ';'].join(''));
}
return buf.join('');
};
var entity = '高级程序设计';
var str = '高级程序设计';
console.log(decodeHtmlEntity(entity) === str);
console.log(encodeHtmlEntity(str) === entity);
// output:
// true
// true
@tolluset
Copy link

tolluset commented Jun 3, 2020

Thanks!

@kachar
Copy link

kachar commented Jan 6, 2021

TypeScript version:

const decodeHtmlEntity = function (str: string) {
  return str.replace(/&#(\d+);/g, function (match: string, dec: number) {
    return String.fromCharCode(dec)
  })
}

const encodeHtmlEntity = function (str: string) {
  const buf = []
  for (let i = str.length - 1; i >= 0; i--) {
    buf.unshift(['&#', str.charCodeAt(i), ';'].join(''))
  }
  return buf.join('')
}

@yangtaeho
Copy link

simple and useful

@ippezshelby
Copy link

ippezshelby commented Aug 14, 2024

How about ", it doesn't decode it to "

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment