在我的Angular应用程序中,我想清理任何输入以删除任何/所有标记,因此即使用户输入<h1>superman</h1>
,也会删除html标记。
现在我已经阅读了ngSanitize
,但是在这个文档页面上https://docs.angularjs.org/api/ngSanitize/service/ $清理它会提到白名单,所以我认为这意味着Angular会接受<h1>
之类的内容。
我的理解是否正确?
如果是这样,我如何从任何输入中强行删除任何和所有标签?
感谢。
答案 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
特定代码。