在使用各种富文本剪辑器时,内容基本会以html代码的形式保留到后台。那么前端在处理的时候就会遇到两种问题:
1、保留html中的各种设置。这个时候就推荐使用ng-bind-html (PS:如果你是用的angular.js进行基础构架的话)
ng-bind-html 指令是通一个安全的方式将内容绑定到 HTML 元素上。
当你想让 AngularJS 在你的应用中写入 HTML,你就需要去检测一些危险代码。通过在应用中引入 "angular-sanitize.js" 模块,使用 ngSanitize 函数来检测代码的安全性。angular-sanitize一般会附带在angularjs中,如果没有附带,请前往官网下载对应版本的angular-sanitize模块。
模块代码
var app = angular.module('demo',['ng-sanitize']);
控制器代码
app.filter("showAsHtml",function($sce){return funciton(input){retrun $sce.trustAsHtml(input);}
})
在引用的时候
<div ng-bind-html='bbb|showAsHtml'></div>
2、删除HTML文件,只保留文本
在代码中:
$scope.removeHTMLTag = function(str){str = str.replace(/<\/?[^>]*>/g,''); //去除HTML tagstr = str.replace(/[ | ]*\n/g,'\n'); //去除行尾空白//str = str.replace(/\n[\s| | ]*\r/g,'\n'); //去除多余空行str=str.replace(/ /ig,'');//去掉 str=str.replace(/\s/g,''); //将空格去掉return str;}
在前端使用:
<div>{
{removeHTMLTag(bbb)}}</div>
好啦,这是我个人使用的方法,如果有什么错误,望大家指正。如果大家有什么其他好的方法,欢迎留言哦!