【问题标题】:Using .split() to add sentences (with commas) into array使用 .split() 将句子(带逗号)添加到数组中
【发布时间】:2018-07-01 14:13:58
【问题描述】:

我正在向数组中添加句子,但我需要以一种将包含逗号的句子考虑在内的方式拆分数组项。

目前我正在使用String.split(",");,但如果句子中有逗号,它会将单个句子拆分为 2 个不同的数组项。理想情况下,我想做一些简单的事情,比如忽略逗号后跟空格。 ", ".

【问题讨论】:

  • 你能举一个输入和预期输出的例子吗?
  • 我会用谷歌搜索“javascript regex”并从那里开始。正则表达式允许您希望实现的模式匹配类型。话虽如此,你应该展示你的一些作品。
  • 为什么不使用任何其他常用分隔符来代替逗号?
  • 输入会是这样的:This is a sentence, that have a comma., This is a sentence, that has a comma., This is a sentence, that has a comma., This is a sentence, that has a comma., 目前它会输出:[This is a sentence] [that has a comma.] [This is a sentence] [that has a comma.] 理想情况下它会输出:[This is a sentence ,有一个逗号。] [这是一个句子,有一个逗号。] [这是一个句子,有一个逗号。]
  • 该对象从一个数组开始,一旦添加到 sessonStorage 就变成一个字符串,然后我想在页面加载时将它变成一个数组。如果这是有道理的,那么逗号已经作为分隔符包含在内。

标签: javascript jquery arrays string split


【解决方案1】:

JavaScript .split() 可以接受正则表达式作为参数。因此,您想要实现的目标非常简单,只需 negative look ahead

var s = "I'm a sentence,I'm another sentence, but with a comma,the last sentence";

console.log( s.split( /,(?! )/ ) )

话虽如此,如果您的句子包含逗号,则不应使用逗号作为分隔符。你应该从根本上解决你的问题:字符串来自哪里,为什么它是字符串(而不是数组)?很遗憾,除了提供的信息之外,我们无法为您提供更多帮助。

【讨论】:

  • 感谢您的信息!我会做的,这应该提供临时修复。谢谢!
  • @CoreySizemore 在阅读了您的 cmets 之后,我看到您使用的是 sessionStorage。看看this link。它将解决split/join 问题。您只需要对数组进行字符串化/解析。
  • @bigless 答案不应基于 cmets,而应基于问题本身。 “我想做一些简单的事情,比如忽略后面跟空格的逗号。”、“”。此外,由于 OP 说“这应该提供临时修复”,我们可以假设它有效。经验法则,您可以编辑问题,但不能编辑评论。另外,请注意答案是在 cmets 之前发布的。
  • 要求是拆分句子。通常,句子分隔符是点/q.mark/e.mark。
  • @bigless 看,这个答案帮助(并且可能解决了)OP 的问题。所以我会让它保持原样,因为它是 OP 要求的(忽略后面跟着空格的逗号。“,”)。但是,如果您认为我错了,请随时发布您自己的答案,这就是本网站的目的。
猜你喜欢
  • 1970-01-01
  • 2011-01-05
  • 1970-01-01
  • 2015-12-29
  • 1970-01-01
  • 2011-04-22
  • 1970-01-01
  • 2021-03-13
相关资源
最近更新 更多