Во-первых, не используйте htmlentities
, но htmlspecialchars
, который кодирует только <
, >
, &
и "
. Таким образом, вы можете просто заменить эти объекты, используя
var decoded = encoded.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/"/g, '"')
.replace(/>/g, '>');
Если вы все еще хотите использовать htmlentities
, вы можете просто создать временную div
:
var div = document.createElement('div');
div.innerHTML = encoded;
var decoded = div.firstChild.nodeValue;