时间:2020-11-04 11:47:57 | 栏目:AngularJS | 点击:次
一、前提
在开始本文之前先设定,从server取下来的内容是一个html格式 的内容,那么如下显示:
<div class="article-view-content col-md-12 col-sm-12 col-xs-12 no-padding-left no-padding-right wiki" ng-bind-html="vm.article.content | ArticlesTrim"> </div>
二、过滤器
现在要做的事情就是做一个过滤器就好了,让他来去掉content里面的空行
angular .module('articles') .filter('ArticlesTrim', ArticlesTrim) ArticlesTrim.$inject = []; function ArticlesTrim() { return function (htmlContent) { var re = /<p><br\/><\/p>|<p><br><\/p>|<p>\s<\/p>/g; var trimLFCR = htmlContent.replace(re, ''); return trimLFCR; } }
这里要注意:正则表达式的编写,我这里去掉是三种:
<p><br/></p> <p><br></p> <p>\s<\/p>
这里regexp的写法,其实就是/xxx/g最后的g表示全部匹配,如果用gi则表示大小写严格。然后,里面/需转义,所以:
<p><br/></p>
转义之后是:
<p><br\/><\/p>
三、正则表达式其他写法
ArticlesTrim.$inject = []; function ArticlesTrim() { return function (htmlContent) { var regex = new RegExp('<p><br/></p>', 'g'); var trimLFCR = htmlContent.replace(regex, ''); regex = new RegExp('<p><br></p>', 'g'); trimLFCR = trimLFCR.replace(regex, ''); return trimLFCR; } }
每一种需要处理的情况,就做一个RegExp来完成。
总结