我有一个想要通过使用逗号作为分隔符将其拆分为数组的字符串。我不希望括号中的字符串部分被分割,即使它们包含逗号也是如此。

例如:

"bibendum, morbi, non, quam (nec, dui, luctus), rutrum, nulla"

应该变成:
["bibendum", "morbi", "non", "quam (nec, dui, luctus)", "rutrum", "nulla"]

但是当我使用基本的.split(",")时,它返回:
["bibendum", " morbi", " non", " quam (nec", " dui", " luctus)", " rutrum", " nulla"]

我需要它返回:
["bibendum", " morbi", " non", " quam (nec, dui, luctus)", " rutrum", " nulla"]

感谢您的帮助。

最佳答案

与其专注于不需要的内容,通常更容易将所需的内容表达为正则表达式,并使用全局正则表达式 match :

var str = "bibendum, morbi, non, quam (nec, dui, luctus), rutrum, nulla";
str.match(/[^,]+(?:\(+*?\))?/g) // the simple one
str.match(/[^,\s]+(?:\s+\([^)]*\))?/g) // not matching whitespaces

09-11 15:16