如何将文本行拆分为JavaScript数组,其中某些元素用引号引起来并包含逗号?

时间:2018-11-13 12:17:56

标签: javascript

我已将Excel数据转换为CSV。包含逗号的原始单元格在CSV中用双引号引起来。例如,一行可能看起来像:

Multiple Choice,"For a student that needing help, a teacher could:",Make it easier,Have them read independently,Use video,Summarize each paragraph,C

如果没有带引号的包含逗号的文本,我将仅使用JavaScript将字符串分成数组元素。

var theArray = theString.split(',');

但是某些文章可能会被引用并包含逗号,这一事实使这一点变得很困难。

是否有一种简单的JavaScript方法将这种文本分解为Array元素,因此在这种情况下,这些元素将是:

  • 多项选择
  • 对于需要帮助的学生,老师可以:
  • 让它变得更容易
  • 让他们独立阅读
  • 使用视频
  • 总结每个段落
  • C

2 个答案:

答案 0 :(得分:1)

您可能必须使用一些正则表达式来设置更详细的选择器。

尝试以下操作:

theString.split(/(?:,)(?=(?:[^"]|"[^"]*")*$)/)

会导致

['Multiple Choice', '"For a student that needing help, a teacher could:"',
 'Make it easier', 'Have them read independently', 'Use video',
 'Summarize each paragraph', 'C']

答案 1 :(得分:0)

我相信此正则表达式会回答所需的结果: /(?:([^,\"]+)|(?:\"([^\"]+)\"))/ 您可以在Raven的答案中使用它。