由括号外的逗号分隔的jQuery / JavaScript

我正在使用jQuery和JavaScript!

例如,我有一个字符串

"cubic-bezier(0.25, 0, 0.25, 1), ease-in, ease-out, linear" 

..我想把它拆分成这个数组:

 // (the following has no leading or trailing spaces:) Array[4] 0: cubic-bezier(0.25, 0, 0.25, 1) 1: ease-in 2: ease-out 3: linear 

..但相反,我得到:

 Array[7] 0: cubic-bezier(0.25 1: 0 2: 0.25 3: 1) 4: ease-in 5: ease-out 6: linear 

我已经尝试了十几个解决方案,但却发现我尝试它的任何方式到目前为止都无效。 以下是我以前的一些尝试:

 var myString = "cubic-bezier(0.25, 0, 0.25, 1), ease-in, ease-out, linear"; myString.split(",(?![^\(\)]*>)"); myString.split('(?:\(.*?\))|(,)'); myString.split(",(?=[^\]]*(?:\[|$))"); myString.split(",(?![^()]*(?:\([^()]*\))?\))"); myString.split('/,(?![^()]*(?:\([^()]*\))?\)/g'); myString.split(",(?=(([^']*'){2})*[^']*$)(?=(([^\"]*\"){2})*[^\"]*$)(?![^()]*\\))"); 

我熟悉基本的正则表达式规则,例如捕获组和选择器,但我仍然对前瞻或我如何解决当前情况感到困惑。

匹配不在括号内的任何逗号

 var myString = "cubic-bezier(0.25, 0, 0.25, 1), ease-in, ease-out, linear"; var parts = myString.split(/\,\s?(?![^\(]*\))/); console.log(parts)