我有一个文本来自后台有多个休息来2个休息,4个休息或6个休息,我想用2个休息代替休息。例如:如果在一个字符串中我有四个连续的休息,那么我想用两个休息来代替这些休息。
我尝试以下代码,但没有工作:
TMSApp.filter('newlinesmatch', function () {
return function(text) {
var str = '<br>';
var count = (text.match(/<br>/g) || []).length;
if(count > 2){
return String(text).replace(/<br>/g,'<br><br>');
}
}
});
有人能帮忙吗?
您可以像这样将任意数量的连续出现的<br>
替换为<br><br>
:
TMSApp.filter('newlinesmatch', function () {
return function(text) {
return text.replace(/(<br>)+/g, '<br><br>');
}
});
注意:我知道你提到过你总是有2、4或6个连续的休息时间。然而,值得注意的是,上面的解决方案将用<br><br>
替换任意数量的连续出现(甚至是单个)。
根据下面的评论和一个真实的例子,我在下面做了改变。注意,原始答案适用于最初描述的场景,其中需要替换连续的<br>
。REAL示例没有连续的<br>
,因为每对之间有一个空格。下面的代码将适用于这种情况:
.filter('newlinesmatch', function () {
return function(text) {
return text.replace(/(<br>s*)+/g, '<br><br>');
}
});
下面是一个工作柱塞和提供的样本数据:
http://plnkr.co/edit/ztcsbJoJ51ZF8FcJylbC?p =预览