【问题标题】:How do I get the javascript split function to extract null values from a delimited string如何让 javascript split 函数从分隔字符串中提取空值
【发布时间】:2010-02-22 12:22:10
【问题描述】:

我正在尝试使用 javascript 拆分函数解析分隔字符串。我正在使用双字符分隔符。 因此,例如如果字符串包含具有以下字段的员工相关数据:

  1. Emp Id(必填)

  2. 姓名(必填)

  3. 年龄(可选)

  4. 手机号(可选)

使用的分隔符是|*(即竖线后跟星号)

我可能有这样的数据

5322|*Mike|*21|*077665543

5323|*Jen|*|*077665543

5324|*Raj|*25|*

5325|*Alan|*|*

如何将空值提取到 split 返回的数组中?

如果我使用Record.split(/\|\*/) 似乎会忽略空值。我是否需要使用正则表达式 exec + substring 等其他函数来执行此操作?除了这个问题,拆分功能似乎很方便。

【问题讨论】:

  • +1 - 欢迎来到 Stack Overflow。

标签: javascript string null split csv


【解决方案1】:

您所做的是正确的,并且存在空值。

>>> "5325|*Alan|*|*".split(/\|\*/)
["5325", "Alan", "", ""]

【讨论】:

  • 确实,如果他们不在那里,他们会返回 undefined:"5325|*Alan|*|*".split(/\|\*/)[4]; // = undefined - +1
  • 感谢您的回复。我使用的是 Internet Explorer,它没有返回空值。在 Firefox 中尝试了相同的代码,它确实做到了。
  • 郑重声明,这是 Internet Explorer 的一个错误(功能?)。 NULL / 空字符串在 IE 中被忽略,但在 Firefox 中被拾取。本页代码提供了splitblog.stevenlevithan.com/archives/cross-browser-split的跨浏览器实现@
【解决方案2】:

不要将 null 与空字符串混淆。您的正则表达式正确拆分分隔字符串,当字段为“空”时捕获空字符串。如果您需要这些数组元素为空,那么您必须自己对返回的数组进行后处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-11
    • 1970-01-01
    相关资源
    最近更新 更多