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

标签 javascript

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

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

如果没有包含逗号的引用文本,我只会使用 JavaScript 将字符串分解为数组元素。

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

但事实上,有些片段可以被引用并包含逗号,这使得这变得很困难。

是否有一种简单的 JavaScript 方法可以将此类文本分解为数组元素,因此在本例中,元素将是:

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

最佳答案

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

尝试以下操作:

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']

关于javascript - 如何将文本行拆分为 JavaScript 数组,其中某些元素用引号引起来并包含逗号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53280853/

相关文章:

javascript - 在 Javascript 中检查 URLS 时使用 'or'

头部定义的 Javascript 函数不起作用

javascript - 仅在父项上捕获或取消 JS 滚轮事件 - 而不是子项

javascript - Mongo - 查找具有特定条件的文档

javascript - RegExp、unicode 和 javascript。如何区分 "\u306E"和字符 "の"之间的区别?

javascript - JQuery 悬停、图像映射、循环和数组

javascript - 使用 PHP 和 Javascript 输入数据库

javascript - 如何在 for 循环内使用 setTimeout 更改 div 内容?

javascript - 如何在图像更改时暂停音频 onmouseout

javascript - HTML5/CSS3 输入范围样式