Javascript - 来自“{”task“:”'+ t'“的正则表达式,。*”}“返回整个字符串

时间:2015-07-15 07:14:41

标签: javascript regex json

我有一个包含JSON任务数组的文件:

目前该文件包含:

[
 {"task":"hey", "checked":"0", "data1":"", "data2":"", "data3":""},
 {"task":"there", "checked":"0", "data1":"jiojoi", "data2":"", "data3":""}
]

我想隔离一个signle任务,所以我使用以下代码:

var taskExp = new RegExp('{"task":"' + taskName + '",.*"}', '');

// Get the task
var task = taskExp.exec(text);

在这种特定情况下,如果taskName = "hey",则返回整个字符串。 (2个任务)。

if taskName = "there",没关系。

为什么呢?提前谢谢。

1 个答案:

答案 0 :(得分:5)

使用正则表达式过滤掉JSON字符串的属性是一个坏主意 将其解析为对象(/ array),然后使用filter

假设text是您的JSON字符串:

var dataArray = JSON.parse(text),
    taskName = "someTaskName";

var result = dataArray.filter(function(item){
    return item.task === taskName;
});

然后,result是所有匹配任务的数组。