由括号外的逗号分隔的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)