DEV Community

Matt Ellen
Matt Ellen

Posted on • Updated on

Parse me a numeric html entity

I saw the following question:

I am using wordpress rest api and am getting encoded title strings from the server. I want to decode the string before I use it to replace the document.title.

Wordpress api

 "id": 698,
 "title": {
  "rendered": "Ludovico Einaudi – “Divenire”"


export default {
  updateDocTitle ({ state,

It's been closed as a dupe, but that didn't discourage me from wanting to figure it out for myself.

So, the challenge is: for any given string input, replace any numerically represented html entities with the correct character.

Remember, the largest codepoint is 0x10ffff.

Some test cases:

'ö_ö' // expected 'ö_ö'
'Hello &&&#x;'  // expected 'Hello &&&#x;'
'&#x123 ģ'  // expected '&#x123 ģ'
'�'    // expected '�'
Enter fullscreen mode Exit fullscreen mode

I'll post my attempt below!

Discussion (2)

mellen profile image
Matt Ellen Author • Edited on

This is how I solved it:

There must be a less verbose way :D

mellen profile image
Matt Ellen Author • Edited on

Created a little Grease Monkey script to use it:

// ==UserScript==
// @name     HTML Entity Replacer
// @version  1
// @include  http*
// @grant    none
// @require
// @run-at   document-end
// ==/UserScript==

inputs = Array.from(document.querySelectorAll('input[type=text], textarea'));
inputs.forEach(input => 
                 input.addEventListener('keyup', e =>      
                                          = replaceNumericEntities(;