如何在javascript中删除非连续的子串

时间:2016-12-01 19:03:56

标签: javascript string

我'我试图找出如何在javascript中从主字符串中查找和删除子字符串。例如,我有字符串" | 1 | 2 | 3 | 4 | 5 |"我想从这个中删除随机子字符串。当我有连续的子字符串时我说它" | 1 | 2 |",但我无法弄清楚如何删除非连续的子字符串,如" | 1 | 4 |&#34 ;.如果你能提供帮助我会适合它。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用正则表达式替换,

"|1|2|3|4|5|".replace(/\|(1|4)\|/g,"|")

你明白了,

"|2|3|5|"

或更好,

function replace_non_consecutives(s, subs){
    var v = subs.match(/[^|]+/g);
    var strregex = "\\|(" + v.join("|") + ")\\|";
    var re = new RegExp(strregex,"g");
    while ( s.match(re) ) s = s.replace(re,"|");
    return s;
}

replace_non_consecutives("|1|2|3|4|5|", "|1|2|4|");

你明白了,

"|3|5|"