我试图从javascript中的最简单的JSON中提取一个值。
搜索后我发现match
是最接近的解决方案。
但是在对RegExp
进行分组的情况下尝试此操作时,它不会给出合适的结果。
我的对象是{"a":"one"}
我正在建立的正则表达式是new RegExp('{"a":"(.*)"}','g')
我的结果
'{"a":"one"}'.match(new RegExp('{"a":"(.*)"}','g'))
是["{"a":"one"}"]
'{"a":"one"}'.match(new RegExp('{"a":"(.*)"}'.replace(/([+?^=!:${}|\[\]\/\\])/g, "\\$1"),'g'))
也是["{"a":"one"}"]
我希望结果应该是["{"a":"one"}", "one"]
这里发生了什么错误?
答案 0 :(得分:2)
如果正则表达式包含
g
标志,则该方法返回一个包含所有匹配的子字符串而不是匹配对象的数组。捕获的组不会被退回。
删除g
修饰符以获得预期结果。
console.log(
'{"a":"one"}'.match(/{"a":"(.*)"}/)
);