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”或“jqLite”。)
所以你可以做:
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
小提琴