Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:拆分字符串而不拆分子字符串_Javascript_String_Split - Fatal编程技术网

JavaScript:拆分字符串而不拆分子字符串

JavaScript:拆分字符串而不拆分子字符串,javascript,string,split,Javascript,String,Split,我有一个字符串如下所示: var str = "'1vK3KfqgSHqv5Y0066FnIY',#41,$,$,(#149,#488,#862,#945,#1028,#1249),#114"; 通常我会: str.split(","); 但这将导致: [ "'1vK3KfqgSHqv5Y0066FnIY'", "#41", "$", "$", "(#149", "#488", "#862", "#945",

我有一个字符串如下所示:

var str = "'1vK3KfqgSHqv5Y0066FnIY',#41,$,$,(#149,#488,#862,#945,#1028,#1249),#114";
通常我会:

str.split(",");
但这将导致:

[
    "'1vK3KfqgSHqv5Y0066FnIY'", 
    "#41", 
    "$", 
    "$", 
    "(#149", 
    "#488", 
    "#862", 
    "#945", 
    "#1028", 
    "#1249)", 
    "#114"
]
鉴于预期结果是:

[
    "'1vK3KfqgSHqv5Y0066FnIY'", 
    "#41", 
    "$", 
    "$", 
    "(#149, #488, #862, #945, #1028, #1249)", 
    "#114"
]

我怎样才能做到这一点呢?

嗨,这里有一个正则表达式

str.match(/(\(.*?\)|[^\(,\s]+)(?=\s*,|\s*$)/g)
导致

[ '\'1vK3KfqgSHqv5Y0066FnIY\'',
  '#41',
  '$',
  '$',
  '(#149,#488,#862,#945,#1028,#1249)',
  '#114' ]

如果字符串是
“'1vK3KfqgSHqv5Y0066FnIY',(#1,(#41,$),$,(#149,#488,#862,#945,#1028,#1249),#11),#114”
?应该如何看待预期结果?您需要编写某种类型的客户解析器来解释括号。@RomanPerekhrest在这种情况下,它将是一个由3条记录组成的数组:[“1vK3KfqgSHqv5Y0066FnIY'”,(#1,(#41,$),$,(#149,#488,#862,#945,#1028,#1249),#11),‌ ‌​“#114”]但我不认为IFC STEP文件(本文所基于的)具有这种结构。请提供检查结果的演示。似乎并非所有内容都已复制到Regexr,现在它可以工作了。谢谢