我有一些这样的文字:
<span>My text</span>
我想显示没有标签:
My text
我也不想应用标签,我想剥离它们。有什么简单的方法可以做到这一点?
Angular html:
<div>{{myText | htmlToPlaintext}}</div>
答案 0 :(得分:205)
jQuery is about 40 times SLOWER, please do not use jQuery for that simple task.
function htmlToPlaintext(text) {
return text ? String(text).replace(/<[^>]+>/gm, '') : '';
}
用法:
var plain_text = htmlToPlaintext( your_html );
angular.module('myApp.filters', []).
filter('htmlToPlaintext', function() {
return function(text) {
return text ? String(text).replace(/<[^>]+>/gm, '') : '';
};
}
);
使用:
<div>{{myText | htmlToPlaintext}}</div>
答案 1 :(得分:20)
来自https://docs.angularjs.org/api/ng/function/angular.element
<强> angular.element 强>
将原始DOM元素或HTML字符串包装为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>
答案 2 :(得分:4)
var app = angular.module('myapp', []);
app.filter('htmlToPlaintext', function()
{
return function(text)
{
return text ? String(text).replace(/<[^>]+>/gm, '') : '';
};
});
<p>{{DetailblogList.description | htmlToPlaintext}}</p>
答案 3 :(得分:3)
您希望使用内置的浏览器HTML条带而不是自己应用正则表达式。它是更安全的,因为绿色浏览器为您完成工作。
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;
}());
将其包装在自执行函数中的原因是重用元素创建。
答案 4 :(得分:3)
<div ng-bind-html="myText"></div>
无需像{{myText}}一样输入html {{}}插值标记。
并且不要忘记在模块中使用ngSanitize,例如
var app = angular.module("myApp", ['ngSanitize']);
并在index.html页面https://cdnjs.com/libraries/angular-sanitize
中添加其cdn依赖项答案 5 :(得分:0)
您可以使用ng-bind-html,不要忘记将$ sanitize服务注入您的模块 希望它有所帮助
答案 6 :(得分:-2)
使用ng-bind-html这只是最恰当和最简单的方法
答案 7 :(得分:-7)
使用此功能,如
String.prototype.text=function(){
return this ? String(this).replace(/<[^>]+>/gm, '') : '';
}
"<span>My text</span>".text()
output:
My text
<强> Fiddle 强>