2017-06-05 75 views
0

如何拆分字符串[email protected]@@[email protected]@@someval3以獲得結果數組爲
['somekey', '@', 'someval', '@@', 'somekey2', '@@@', 'someval3']JavaScript RegExp分割保存分隔符

+0

你被困在哪一部分?如何匹配一個或多個@字符,或如何讓這些字符出現在輸出數組中? [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split)就是後者的一個例子。 – nnnnnn

+0

當你分裂的東西,你會失去分隔符 –

+0

@ A.Lau - 只有當你想。 '.split()'可以做到這一點。 – nnnnnn

回答

1

你可以嘗試下面的代碼片段,它允許你分割和捕獲任何令牌

var str = '[email protected]@@[email protected]@@so>>meval3!!split&&me%hello#world'; 
 
var result = str.split(/([^\w]+)/); 
 
console.log(result);

1

這應該工作:

var myString = '[email protected]@@[email protected]@@someval3'; 
var splits = myString.split(/\b/); 

\b指字的邊界在這裏。

+0

不,我需要具體模板。字符串可以包含「>>」或「>」或「@@'或空格,我希望每個實體在自己的陣列中拆分 – Herrgott

+1

如果要分割和/或捕獲'>>或'>' ,那麼請將這些信息添加到您的問題中,以及有關如何處理空間的信息。 – 2017-06-05 03:37:33

0

找到解決方案。要拆分@@@不同的分隔符,你需要/(@@|@)/g

+0

或者您可以使用'/(@ +)/'按照最初的評論建議。 – nnnnnn

0

您可以使用String.prototype.match()RegExp/\w+|[^\w]+/g匹配一個或多個單詞的字符或一個或多個字符,沒有字字符

var str = "[email protected]<<[email protected]@@someval3  somekey4####someval5"; 
 
var res = str.match(/\w+|[^\w]+/g); 
 
console.log(res);