gpt4 book ai didi

javascript - jQuery/JavaScript 用括号外的逗号分割字符串

转载 作者:行者123 更新时间:2023-11-30 08:28:43 26 4
gpt4 key购买 nike

我正在使用 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)

/\,\s?(?![^\(]*\))/
  • \, 按字面意思匹配字符 ,
  • \s? 匹配任何空白字符。 ? 量词匹配零到一次
  • (?![^\(]*\)) Negative Lookahead 断言正则表达式不匹配下面列表中不存在的单个字符
  • [^\(] 量词。匹配零次和无限次之间,越多越好
  • \( 匹配字符 ( 字面上的
  • \) 匹配字符 ) 字面意思

关于javascript - jQuery/JavaScript 用括号外的逗号分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41071509/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com