使用逗号拆分字符串,但忽略双引号内的逗号 - javascript
Posted
技术标签:
【中文标题】使用逗号拆分字符串,但忽略双引号内的逗号 - javascript【英文标题】:Split the string using comma but ignore the comma within double quotes - javascript 【发布时间】:2020-08-03 04:58:25 【问题描述】:我知道,这个论坛之前已经问过这个问题 - Split a string by commas but ignore commas within double-quotes using javascript。但我的要求略有不同,这里已经问过了。很抱歉让您对我的问题感到困惑。
我有一个像下面这样的字符串 -
myString = " "123","ABC", "ABC,DEF", "GHI" "
这里我想用逗号分割这个字符串并将其存储到一个数组中,但忽略双引号中的逗号。这是我到目前为止所尝试的。
myArray.push(myString.replace(/"/g,"").split(","));
但我不确定如何忽略双引号内的 ','。有人可以帮忙吗?
这就是我的输出应该是什么样子 -
myArray = ["123","ABC", "ABC,DEF", "GHI"]
【问题讨论】:
***.com/questions/11456850/… 看起来像JSON,你为什么不解析呢?哪个部分是实际的字符串? @epascarello 我已经看过这个问题了。在我的例子中,每个值都带有双引号。var foo = JSON.parse('[' + myString + ']')
这同样令人困惑,它现在在语法上无效。
【参考方案1】:
好像你已经有一个数组,所以没有逗号可以拆分。转换它.toString()
看起来是一个不必要的步骤。
我认为您将语言语法与实际数据混淆了。您看到的双引号不是字符串内容的一部分。您似乎已经拥有所需的数据。
【讨论】:
感谢您的回复。我实际上让你对输入感到困惑。实际上我希望字符串用逗号分隔。请查看编辑。为之前的混乱道歉。【参考方案2】:借助split()
、map()
和replace()
的一种方法
myString = ' "123","ABC", "ABC,DEF", "GHI" ';
console.log(myString.split('",').map(n=>n.replace(/\"| /g,'')));
【讨论】:
【参考方案3】:myString = ' "123","ABC", "ABC, DEF", "GHI" ';
console.log(JSON.parse(`[$myString]`));
这应该可以解决问题...基本上是 epascarello 在 cmets 中对问题所写的内容。
干杯。
【讨论】:
【参考方案4】:您可以尝试使用正则表达式([^"])*
我在https://regex101.com上测试过
这是您在下图中看到的结果 => https://regex101.com/r/a5dwNY/1
【讨论】:
以上是关于使用逗号拆分字符串,但忽略双引号内的逗号 - javascript的主要内容,如果未能解决你的问题,请参考以下文章