用正则表达式在javascript中拆分字符串?

时间:2012-09-22 11:26:16

标签: javascript regex split

我在javascript中有以下字符串,

Id:121,RefId:123,Date:Sep 22, 2012 12:00:00 AM  

当我试图将它分成3个键,值对使用时,作为分隔符,它给了我错误的输出,因为在日期还有另一个,(逗号)。
所以我想我必须使用正则表达式 我想按如下方式显示它;

Id:121   
RefId:123   
Date:Sep 22, 2012 12:00:00 AM  

有人可以建议如何使用正则表达式来克服日期中额外的逗号吗? 在此先感谢...

3 个答案:

答案 0 :(得分:4)

你的意思是拆分,,而不是空格?

'Id:121,RefId:123,Date:Sep 22, 2012 12:00:00 AM  '.split(/,(?=\S)/);
// will give you ["Id:121", "RefId:123", "Date:Sep 22, 2012 12:00:00 AM  "]

答案 1 :(得分:2)

如果你真的想要一个正则表达式(而不是有限的分割),你可以这样做:

var text = "Id:121,RefId:123,Date:Sep 22, 2012 12:00:00 AM";
text.match(/^(.+?),(.+?),(.+)$/);

答案 2 :(得分:2)

如果您想使用正则表达式,可以试试这个:

re = /^Id:(\d+),RefId:(\d+),Date:(.+)/
matches = re.exec("Id:121,RefId:123,Date:Sep 22, 2012 12:00:00 AM")
matches[1] // "121"
matches[2] // "123"
matches[3] // "Sep 22, 2012 12:00:00 AM"