将文本块分组并将其转换为对象

时间:2014-04-04 08:56:25

标签: javascript regex

我使用的API返回的文本文件如下所示:

#start
#p 09060 20131010
#p 09180 AK
#p 01001 19110212982
#end
#start
#p 09060 20131110
#p 09180 AB
#p 01001 12110212982
#end

我想将结果转换为对象列表:

[{
    09060: 20131010,
    09180: 'AK',
    01001: 19110212982
},
{
    09060: 20131110,
    09180: 'AB',
    01001: 12110212982
}]

我尝试使用正则表达式从每个#start#end部分创建组,但没有成功:

unmatched ) in regular expression
text.match(/#start(.*?)#end/)
-----------^

我还记得split()。也许它更合适,如果有办法设置一个" start" +"结束"?或者您还有其他建议吗?

1 个答案:

答案 0 :(得分:0)

您可以在"#end"后跟"#start"分开。只需确保首先删除初始"#start"和最终"#end"

text = text.substr(7, text.length-12)
text.split("#end\n#start")