2016-12-29 6 views
1

我開始學習JavaScript中的正則表達式,我可以這樣做嗎?如何通過正則表達式分割字符串,同時保持分離器在數組中

想象我有以下字符串:

Car ball car ball circle happy 

而且我想通過全部,而不是匹配,就像一個輸出:

["Car", "car", "circle happy"] 

或者拆分當我發現在我的字符串中:

["Car", "ball", "car", "ball", "circle happy"] 

我該怎麼做?

+2

示例輸入不足。 – revo

+1

嗨,歡迎來到StackOverflow!請務必閱讀[如何問](https://stackoverflow.com/help/how-to-ask)以確保您獲得高質量的答案! – mhutter

+0

我的意思是像(只有當你發現「球」時分裂) –

回答

2

您可能分裂與/(ball)/(或佔一整個詞,在模式周圍添加\b字邊界)。用捕捉括號的整個模式將輸出匹配的字符串部分到結果數組中。

var s = 'Car ball car ball circle happy'; 
 
console.log(s.split(/(ball)/).map(function(x) { return x.trim();}));

如果您不需要ball是導致陣列輸出,省略捕獲括號,用區區/ball/

如果您需要使模式不區分大小寫,請使用/i修飾符:/(ball)/i

2

您可以通過'ball'拆分得到你的答案爲:

["Car", "car", "circle happy"] 

或者通過'(ball)'得到你的答案爲:

["Car","ball","car","ball","circle happy"] 

var str="Car ball car ball circle happy"; 
 
var vals=str.split(/ball/i).map(String.trim); 
 
console.log(vals); 
 

 
// Or 
 

 
var valsAll=str.split(/(ball)/i).map(String.trim); 
 
console.log(valsAll);

+0

您不需要在JavaScript中使用正則表達式分割操作的'g'修飾符,這是默認行爲。 –

相關問題