在Javascript中解码HTML实体

时间:2014-04-24 13:45:27

标签: javascript html regex

我在数据库中有一条记录,如:<script src="here is link"><&#47;script>

将斜杠转换为特殊HTML字符的正则表达式:string.replace(/\<\/script\>/g, '<&#47;script>');

然后我将其输出到页面。

输出后的结果:

<script src="http://code.jquery.com/jquery-latest.min.js">

    <&#47;script>

</script>

为什么输出HTML char?我需要用regexp再次转换它吗?

1 个答案:

答案 0 :(得分:3)

使用以下JavaScript函数:

function decodeHTMLEntities(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('');
};

alert(decodeHTMLEntities('<&#47;script>'))

DEMO http://jsfiddle.net/tuga/6pXmn/3/

SRC https://gist.github.com/CatTail/4174511