从|中删除给定的子字符串分隔字符串

问题描述:

给定一个输入字符串,我需要在一个管道分隔字符串内搜索并删除该输入。使用 “S1” 作为一个例子的输入:从|中删除给定的子字符串分隔字符串

  • “S-0 | S1” 应替换为 “S-0”
  • “AB | S1 | S2” 应替换为 “AB | S2”
  • “S1 | S2” 应与 “S2”

对于所有那些谁是downvoting被替换,我试过分裂没有成功。也许我忽略了一些简单的东西。

currentSelArr = inputString.split('|'); 
    for(var i = 0; i < currentSelArr .length; i++) { 
     if(currentSelArr[i] === stringToDelete) { 

      //What should I do here? 
     } 
     } 
+0

做您尝试使用str.split( '|')? – yeg

+0

是的。我只是想看看是否有办法做一些形式的正则表达式字符串操作。 –

+0

用正则表达式做这件事很棘手,因为你必须处理它的第一个,最后一个或中间不同的情况。拆分更容易。 – Barmar

或许要做到这一点最简单的方法是用string.split(),而不是正则表达式:

"ab|s1|s2".split("|").filter(function(el, index) { 
    return el !== 's1'; 
    }).join("|"); 
+1

如果是“s12”怎么办? – miken32

+0

只需用'return el.indexOf('s12')=== -1替换'return el.indexOf('s1')=== -1;'; '(甚至在indexOf()中使用一个变量)。 – TAGraves

+0

我的意思是原始字符串。 “AB | S12 | S2”。 – miken32