Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用各种分隔符拆分字符串,同时保留分隔符_Javascript_String_Split - Fatal编程技术网

Javascript 使用各种分隔符拆分字符串,同时保留分隔符

Javascript 使用各种分隔符拆分字符串,同时保留分隔符,javascript,string,split,Javascript,String,Split,我有以下字符串: "dogs@cats^horses^fish!birds" 如何取回以下数组 ['dogs','@cats','^horses','^fish','!birds'] 基本上,我是想在保持纤度的同时,把绳子分开。我尝试了string.match,但没有效果。假设这些是您唯一的分隔符,那么您可以执行以下操作: var string = "dogs@cats^horses^fish!birds"; string.replace(/(@|\^|!)/g, '|$1').split(

我有以下字符串:

"dogs@cats^horses^fish!birds"
如何取回以下数组

['dogs','@cats','^horses','^fish','!birds']

基本上,我是想在保持纤度的同时,把绳子分开。我尝试了string.match,但没有效果。

假设这些是您唯一的分隔符,那么您可以执行以下操作:

var string = "dogs@cats^horses^fish!birds";
string.replace(/(@|\^|!)/g, '|$1').split('|');

我们基本上添加了我们自己的分隔符,在本例中|并基于此进行拆分。

假设这些是您唯一的分隔符,那么您可以执行以下操作:

var string = "dogs@cats^horses^fish!birds";
string.replace(/(@|\^|!)/g, '|$1').split('|');

我们基本上添加了我们自己的分隔符,在本例中|并基于此进行拆分。

这就是您想要的:

str.match(/((^|[^\w])\w+)/g)
但是,如果没有更多的测试用例,很难说它有多可靠


这也假设了一大组可能的分隔符。如果是少量的固定量,Samer的解决方案将是一个很好的方法

这正是您想要的:

str.match(/((^|[^\w])\w+)/g)
但是,如果没有更多的测试用例,很难说它有多可靠


这也假设了一大组可能的分隔符。如果是一个小的固定数量,Samer的解决方案将是一个很好的方法

你有什么代码?@SmokeyHP和DownVorters:代码并不总是必要的。在某些情况下,这是一个问题,您知道或不知道解决方案,并且添加一些代码不会有太大的改变。我现在找不到一篇关于这一点的博文。@scimenster不,不是,但你已经尝试过的证据是。我没有投反对票,但正如OP所说,他们已经尝试了string.match,知道他们尝试了什么很有趣,这样我们就可以告诉他们哪里出了问题,而不是提交完整的解决方案。他们可能已经很接近了!你有什么代码?@SmokeyHP和DownVorters:代码并不总是必要的。在某些情况下,这是一个问题,您知道或不知道解决方案,并且添加一些代码不会有太大的改变。我现在找不到一篇关于这一点的博文。@scimenster不,不是,但你已经尝试过的证据是。我没有投反对票,但正如OP所说,他们已经尝试了string.match,知道他们尝试了什么很有趣,这样我们就可以告诉他们哪里出了问题,而不是提交完整的解决方案。他们可能已经很接近了!非常好和干净的解决方案!!完美的多谢各位@silentw@Cmag我想你应该感谢Samer。。。只是说:p当然不会冒犯傻子!非常好和干净的解决方案!!完美的多谢各位@silentw@Cmag我想你应该感谢Samer。。。只是说:p当然不会冒犯傻子!