1

我在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  

谁能建议如何使用正则表达式克服日期中的额外逗号?
提前致谢...

4

3 回答 3

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  "]
于 2012-09-22T11:35:44.820 回答
2

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

var text = "Id:121,RefId:123,Date:Sep 22, 2012 12:00:00 AM";
text.match(/^(.+?),(.+?),(.+)$/);
于 2012-09-22T11:37:33.360 回答
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"
于 2012-09-22T11:42:05.537 回答