angularjs输出纯文本而不是html

我有这样的文字:

<span>My text</span> 

我想显示没有标签:

 My text 

我也不想应用标签,我想剥离它们。 什么是一个简单的方法来做到这一点?

Angular html:

 <div>{{myText | htmlToPlaintext}}</div> 

jQuery大约是SLOWER的40倍 ,请不要为这个简单的任务使用jQuery。

 function htmlToPlaintext(text) { return text ? String(text).replace(/<[^>]+>/gm, '') : ''; } 

用法:

 var plain_text = htmlToPlaintext( your_html ); 

使用angular.js:

 angular.module('myApp.filters', []). filter('htmlToPlaintext', function() { return function(text) { return text ? String(text).replace(/<[^>]+>/gm, '') : ''; }; } ); 

使用 :

 <div>{{myText | htmlToPlaintext}}</div> 

https://docs.angularjs.org/api/ng/function/angular.element

angular.element

将原始DOM元素或HTMLstring包装为jQuery元素(如果jQuery不可用,angular.element委托给Angular的jQuery内置子集称为“jQuery lite”或“jqLit​​e”。)

所以你可以做:

 angular.module('myApp.filters', []). filter('htmlToPlaintext', function() { return function(text) { return angular.element(text).text(); } } ); 

用法:

 <div>{{myText | htmlToPlaintext}}</div> 

你想使用内置的浏览器HTML条,而不是自己申请一个正则expression式。 因为永远绿色的浏览器为你做的工作更安全。

 angular.module('myApp.filters', []). filter('htmlToPlaintext', function() { return function(text) { return stripHtml(text); }; } ); var stripHtml = (function () { var tmpEl = $document[0].createElement("DIV"); function strip(html) { if (!html) { return ""; } tmpEl.innerHTML = html; return tmpEl.textContent || tmpEl.innerText || ""; } return strip; }()); 

将其包装在自执行函数中的原因是为了重用元素创build。

 var app = angular.module('myapp', []); app.filter('htmlToPlaintext', function() { return function(text) { return text ? String(text).replace(/<[^>]+>/gm, '') : ''; }; }); <p>{{DetailblogList.description | htmlToPlaintext}}</p> 

不需要像{{myText}}一样插入html {{}}插值标签。{ <div ng-bind-html="myText"></div>

不要忘记在模块中使用ngSanitize,例如var app = angular.module("myApp", ['ngSanitize']);

并在index.html页面https://cdnjs.com/libraries/angular-sanitize中添加它的cdn依赖项;

你可以使用ng-bind-html,不要忘了在你的模块中注入$ sanitize服务希望它有帮助

使用ng-bind-html这是唯一的,最简单的方法

使用这个function就好

  String.prototype.text=function(){ return this ? String(this).replace(/<[^>]+>/gm, '') : ''; } "<span>My text</span>".text() output: My text 

小提琴