2015-11-06 139 views
-2

給定一個輸入字符串,我需要在一個管道分隔字符串內搜索並刪除該輸入。使用 「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

回答

1

或許要做到這一點最簡單的方法是用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