var string = "[{"name":"person1", "city": "city1"},
{"name":"person2", "city":"city1"},
{"name":"person3", "city": "city1"}]"
如何使用正则表达式获取字符串var的值?
result => ["person1", "person2", "person3"]
答案 0 :(得分:1)
将您的初始字符串更改为有效的JSON表示法。
然后,您可以使用JSON.parse
和Array.map
函数轻松获取一系列人员:
var string = '[{"name":"person1", "city": "city1"},{"name":"person2", "city":"city1"},{"name":"person3", "city": "city1"}]';
var persons = JSON.parse(string).map(function(v){ return v['name']; });
console.log(persons); // ["person1", "person2", "person3"]
答案 1 :(得分:0)
你可能甚至不需要RegEx。你可以使用下面的代码。
var objects = JSON.parse(string); //Parse your string to JS object
var result = [];
objects.forEach(function(item,index,arr) //Iterate add to result array
{
result.push(item.name);
});
答案 2 :(得分:0)
您可以使用 JSON.parse 然后地图来获取名称:
var obj = JSON.parse(string);
var names = obj.map(function(o) {
return o.name;
});
答案 3 :(得分:0)
RegEx用于在Json String中获取值
我必须为此演示制作变量字符串valid string
。这里的代码可以帮助您获得理想的结果。
正则表达式使用:/{"name":"(.*?)"/g
与捕获组(.*?)
仅提取所需数据。
function getMatches(string, regex, index) {
index || (index = 1); // default to the first capturing group
var matches = [];
var match;
while (match = regex.exec(string)) {
matches.push(match[index]);
}
return matches;
}
var string = '[{"name":"person1", "city": "city1"},{"name":"person2", "city":"city1"},{"name":"person3", "city": "city1"}]';
var matches = getMatches(string, /{"name":"(.*?)"/g, 1);
// Log results
document.write(JSON.stringify(matches))