2017-06-05 104 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);