删除特定的重复字符串(但留下一个)

时间:2017-08-11 18:01:04

标签: javascript

var oldString = "Test---NEWLINE------NEWLINE---This is another line.---NEWLINE---And another line.---NEWLINE------NEWLINE------NEWLINE---One more line.";

我只想要一个" --- NEWLINE ---"一次出现。如果彼此相邻有多个,我希望将它们删除。所以新字符串将是:

var newString = "Test---NEWLINE---This is another line.---NEWLINE---And another line.---NEWLINE---One more line.";

4 个答案:

答案 0 :(得分:1)

Thor有一个解决方案,这是另一个愚蠢的解决方案,可以处理任何数量的--- NEWLINE ---一起出现:

var oldString = "Test---NEWLINE------NEWLINE---This is another line.---NEWLINE---And another line.---NEWLINE------NEWLINE------NEWLINE---One more line.";

var split = oldString.split('---NEWLINE---');
var newSplit = [];
for (var i = 0; i < split.length; i++) {
    if (split[i].length != 0) {
        newSplit.push(split[i]);
    }
}

var newString = newSplit.join('---NEWLINE---');

答案 1 :(得分:1)

替换是一个不错的选择:

var newString = oldString.replace(/(---NEWLINE---){2,}/g, '---NEWLINE---');

但只有多个“--- NEWLINE ---”。

答案 2 :(得分:0)

真正的愚蠢方式:

replace("---NEWLINE------NEWLINE---", "---NEWLINE---").replace("---NEWLINE------NEWLINE---", "---NEWLINE---")

第一个仍将留下一个左,第二个将排除。

答案 3 :(得分:0)

您可以通过换行将字符串拆分为数组,删除空数组元素,然后重新加入。

var str = "Test---NEWLINE------NEWLINE---This is another line.---NEWLINE---And another line.---NEWLINE------NEWLINE------NEWLINE---One more line.";

var newStr = str.split("---NEWLINE---").filter(function (el) { 
  return el.length;
}).join("---NEWLINE---");