如何在字符串中转义html实体

时间:2015-03-30 21:37:54

标签: javascript angularjs

我希望转义用户输入值的内容,因此它们显示为html实体。即<将在HTML标记中显示为<。但我想用实际的html包装用户输入的值。我的想法是,我应该能够逃避用户输入的值,但仍然信任html。

这是我的html片段: <span ng-bind-html="trustHtml(notif.getConditionText())"></span>

控制器:

$scope.trustHtml = function(html) {
    return $sce.trustAsHtml(html);
}

NOTIF:

getConditionText: function() {
    return "<b>" + $sanitize(this.name) + "</b>";
}

我正在寻找一个代替$ sanitize的函数来逃避用户输入的“name”属性值。即如果他们输入Seattle <rocks>,则会输出html为Seattle &lt;rocks&gt;

任何人都知道像这样的角色?

注意我不是要编码为URI实体,而是编码HTML实体。

1 个答案:

答案 0 :(得分:0)

好吧,我发现了这个:Convert special characters to HTML in Javascript

你可以写一个像:

这样的函数
function HtmlEncode(s)
{
  var el = document.createElement("div");
  el.innerText = el.textContent = s;
  s = el.innerHTML;
  return s;
}

并将其编码。现在,我没有找到特定于angularjs的东西。

我希望它有所帮助