如何转换
"one,cubic-bezier(0, 0, 1, 1), cubic-bezier(0, 0, 1, 1), linear"
至
["one", "cubic-bezier(0, 0, 1, 1)", "cubic-bezier(0, 0, 1, 1)", "linear"]
怎么样?
JavaScript。
不一样因为引号(左右两边),这里是(-左,)-右。
不要在JS中工作。
'ease,cubic-bezier(0, 0, 1, 1), linear,2,3'.split(/,(?=[^()]*((|$))/gi);
结果:
ease,(,cubic-bezier(0, 0, 1, 1),, linear,,2,,3
最佳答案
假定parens无法嵌套(在这种情况下,您将无法使用JS regex风格)。
尝试这个:
,(?![^()]*\))
快速分解:
, # match a comma [1]
(?! # start negative look ahead [2]
[^()]* # match zero or more non-parens chars [3]
\) # match the closing paren [4]
) # stop look ahead
用简单的英语来说,将显示为:
匹配逗号[1],前提是前面[2]前面没有结束括号[4],并且逗号和结束括号[3]之间没有任何括号