如何从提到的字符串中提取逗号分隔的值

How to fetch comma separated values from mentioned string

本文关键字:提取 分隔 字符串      更新时间:2023-09-26

我想从下面的字符串中获取逗号分隔的ID和类型。

我尝试了拆分,但这需要多次拆分才能获得所需的结果。

请建议一种有效的方法来获取所需的输出,如使用js/jquery获取1234,4321

var tempString=
'[{"id":"1234","desc":"description","status":"activated","type":"type","name":"NAME"},
  {"id":"4321","desc":"description1","status":"inactivated","type":"type","name":"NAME1"}]';

要获得"1234,4321",可以执行

var ids = tempString.map(function(v){return v.id}).join(',');

如果你想与IE8兼容,那么你可以做

var ids = $.map(tempString, function(v){return v.id}).join(',');

以下问题编辑:

如果tempString不是一个数组,而是一个JSON字符串,那么您应该执行

var ids = $.map(JSON.parse(tempString), function(v){return v.id}).join(',');

如前所述,在您的示例中,这不是字符串。缺少一些引号。

无论如何,看看@dystroy的答案,但我认为您正在处理JSON对象,您可能应该使用JSON解析器(如果必须的话,甚至可以使用javascripts原始eval),然后将组件作为对象属性和数组获取。

查看jquery的parseJSON

您应该使用任何用于JSON的Javascript解析器api将给定字符串解码为键和后续值。正如"Miquel"所提到的,jQuery有一个

首先,上面的不是字符串,而是对象数组。

但是

如果它是一个字符串(像这样)

var tempString = '[{"id":"1234","desc":"description","status":"activated","type":"type","name":"NAME"}]

[{"id":"4321","desc":"description1"、"status":"inactivated"、"type":"type"、"name":"NAME1"}]';

然后你会想要使用类似.match();https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/match

var ID=tempString.match(/([0-9]+)/gi);