用大括号分隔正则表达式javascript值的逗号

用大括号分隔正则表达式javascript值的逗号,javascript,regex,Javascript,Regex,我有一根像这样的绳子 var str = "RR,target_value,006EI4ZXZALFXAT2E4AHX2O6V,006EI4ZXZALFXAT2E4AHX2O6V,dynamic,{\"(MEASURES_DIMENSION)\":\"006EI4ZXZALFXAT2E4AHX2O6V\",\"ZR_ITEM__ZR_BRAND\":\"0000000201\"},cell_selection,34932,#FFFFFF,,25,[{\"color\":\"#566C6C\",\

我有一根像这样的绳子

var str = "RR,target_value,006EI4ZXZALFXAT2E4AHX2O6V,006EI4ZXZALFXAT2E4AHX2O6V,dynamic,{\"(MEASURES_DIMENSION)\":\"006EI4ZXZALFXAT2E4AHX2O6V\",\"ZR_ITEM__ZR_BRAND\":\"0000000201\"},cell_selection,34932,#FFFFFF,,25,[{\"color\":\"#566C6C\",\"from\":\"10\",\"to\":\"50\",\"icon\":\"fa://minus-with-square\",\"size\":\"30\",\"angle\":\"45\"}]";
["RR","target_value","006EI4ZXZALFXAT2E4AHX2O6V","006EI4ZXZALFXAT2E4AHX2O6V","dynamic","{\"(MEASURES_DIMENSION)\":\"006EI4ZXZALFXAT2E4AHX2O6V\"","\"ZR_ITEM__ZR_BRAND\":\"0000000201\"}","cell_selection","34932","#FFFFFF","","25","[{\"color\":\"#566C6C\",\"from\":\"10\",\"to\":\"50\",\"icon\":\"fa://minus-with-square\",\"size\":\"30\",\"angle\":\"45\"}]"]
变量数组=
str.split(/,(?=[^\]]*(?:\[\$)/)
; 我将字符串拆分为一个数组,因此输出如下

var str = "RR,target_value,006EI4ZXZALFXAT2E4AHX2O6V,006EI4ZXZALFXAT2E4AHX2O6V,dynamic,{\"(MEASURES_DIMENSION)\":\"006EI4ZXZALFXAT2E4AHX2O6V\",\"ZR_ITEM__ZR_BRAND\":\"0000000201\"},cell_selection,34932,#FFFFFF,,25,[{\"color\":\"#566C6C\",\"from\":\"10\",\"to\":\"50\",\"icon\":\"fa://minus-with-square\",\"size\":\"30\",\"angle\":\"45\"}]";
["RR","target_value","006EI4ZXZALFXAT2E4AHX2O6V","006EI4ZXZALFXAT2E4AHX2O6V","dynamic","{\"(MEASURES_DIMENSION)\":\"006EI4ZXZALFXAT2E4AHX2O6V\"","\"ZR_ITEM__ZR_BRAND\":\"0000000201\"}","cell_selection","34932","#FFFFFF","","25","[{\"color\":\"#566C6C\",\"from\":\"10\",\"to\":\"50\",\"icon\":\"fa://minus-with-square\",\"size\":\"30\",\"angle\":\"45\"}]"]
但它是基于大括号内的逗号进行拆分的。但它不应该是这样。我需要大括号内的完整字符串。

这里有一个匹配的正则表达式

\{[^}]*\}|[^,.\s\[\]]+
不确定这是否是您的期望,演示:

您可以使用另一个类似于用于括号的:

(?=[^}]*(?:{|$)

您的正则表达式将如下所示:

[代码>var-str>var-str”R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.S.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ“:\'30\',\'angle\':\'45\'”;
console.log(str.split(/,(?=[^\]]*(?:\[^$))(?=[^}]*(?:{^$)/);@htoniv,谢谢,我修复了它,错误地添加了一个冗余的“|”。@htoniv,我更新了你的演示:,这是你的期望吗