如何让javascript split函数从分隔字符串中提取空值

如何让javascript split函数从分隔字符串中提取空值,javascript,string,null,split,delimited-text,Javascript,String,Null,Split,Delimited Text,我正在尝试使用javascript split函数解析分隔字符串。我使用的是双字符分隔符。 例如,如果字符串包含具有以下字段的员工相关数据: Emp Id(强制性) 姓名(必填) 年龄(可选) 手机号码(可选) 使用的分隔符是|*(即管道后跟星形) 我可能有这样的数据 5322|*Mike|*21|*077665543 5323|*Jen|*|*077665543 5324|*Raj|*25|* 5325|*Alan|*|* 如何将空值提取到split返回的数组中 如果我使用Record

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

  • Emp Id(强制性)

  • 姓名(必填)

  • 年龄(可选)

  • 手机号码(可选)

  • 使用的分隔符是
    |*
    (即管道后跟星形)

    我可能有这样的数据

    5322|*Mike|*21|*077665543
    
    5323|*Jen|*|*077665543
    
    5324|*Raj|*25|*
    
    5325|*Alan|*|*
    
    如何将空值提取到split返回的数组中


    如果我使用
    Record.split(/\\\*/)
    它似乎会忽略空值。我是否需要使用诸如regex exec+substring之类的其他函数来执行此操作?除此之外,split函数似乎非常方便。

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

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

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

    +1-欢迎使用堆栈溢出。事实上,如果它们不在那里,它们将返回未定义的:
    “5325 |*Alan |*|*”。split(/\\\*/)[4];/=未定义
    -+1感谢您的回复。我使用的是Internet Explorer,它没有返回空值。在Firefox中尝试了相同的代码,结果成功了。请注意,这是Internet Explorer的一个bug(功能?)。空/空字符串在IE中被忽略,但在Firefox中被拾取。此页面上的代码提供了split的跨浏览器实现