Angular - 从输入中剥离所有标记

时间:2016-04-01 21:44:08

标签: angularjs

在我的Angular应用程序中,我想清理任何输入以删除任何/所有标记,因此即使用户输入<h1>superman</h1>,也会删除html标记。

现在我已经阅读了ngSanitize,但是在这个文档页面上https://docs.angularjs.org/api/ngSanitize/service/ $清理它会提到白名单,所以我认为这意味着Angular会接受<h1>之类的内容。

我的理解是否正确?

如果是这样,我如何从任何输入中强行删除任何和所有标签?

感谢。

2 个答案:

答案 0 :(得分:5)

ngSanitize只是让html安全,所以它无法在里面运行javascript。你可能想在这里使用简单的javascript替换方法和正则表达式。

类似的东西:

var str = '<h1>superman</h1>';
str.replace(/<[^>]+>/g, '');

这会删除所有XML标记,而不仅仅是html。

答案 1 :(得分:0)

请参阅此plnkr示例 https://plnkr.co/edit/F9K3sekUQUJPBUts8Jdw?p=preview

var strip = function() {
   var tmp = document.createElement("DIV");
   tmp.innerHTML = $scope.strip; // assuming text box is using "strip" for ng-model
   return tmp.textContent || tmp.innerText || "";
};

可以使用简单的Javascript完成。无需ngSanitize或任何其他angularjs特定代码。