如何使用`if`条件和分隔符拆分字符串

Ger*_*era 4 javascript arrays split

我在 javascript 中有一个变量,文本用逗号分隔,例如:

var array = "hello,goodbye,test1,test2,1,90m tall"; [逗号后没有空格]

如果我使用.split(',');结果如下:

array[0] = hello
array[1] = goodbye
array[2] = test1 
array[3] = test2
array[4] = 1
array[5] = 90m tall
Run Code Online (Sandbox Code Playgroud)

但我想要这个:

array[0] = hello
array[1] = goodbye
array[2] = test1 
array[3] = test2
array[4] = 1,90m tall
Run Code Online (Sandbox Code Playgroud)

我该怎么做?我可以想象我必须添加一些特殊限制,但我不知道如何...我也检查了正则表达式但...没有成功。

tri*_*cot 5

这取决于您要拆分或不拆分的逻辑。例如,如果您不想用后面至少有两位数字的逗号分隔,那么可以这样做:

array.split(/,(?!\d\d)/))
Run Code Online (Sandbox Code Playgroud)

这对两位数字执行否定前瞻,并且只会匹配后面没有这些数字的逗号。

片段:

array.split(/,(?!\d\d)/))
Run Code Online (Sandbox Code Playgroud)

跟进问题/答案

您在评论中询问如何拆分:

[hello]blabla,[how,are,you]xx,[i'm fine]
Run Code Online (Sandbox Code Playgroud)

这样一个逗号只有在它后面跟着一个左括号时才会分开。

为此,您可以使用正面展望 ( ?=):

var array = "hello,goodbye,test1,test2,1,90m tall";

document.body.innerHTML = array.split(/,(?!\d\d)/)
                               .join('<br>');
Run Code Online (Sandbox Code Playgroud)