我有一个控制台输出,该输出是字符串{x:0,y:0,width:1920,height:1080}
,需要将其转换为对象,但是在所有属性都被引号引起来之前,我无法对其进行JSON.parse()转换。
我设法找到了可以与任何单词\b[\w]+\b
匹配的正则表达式,但是我不知道如何使用每一个匹配项来替换'"' + match + '"'
的两边。我意识到那里也有数字,所以也许这会是一个更好的正则表达式:\b[a-zA-Z]+\b
,前提是属性名称永远不要包含数字。
答案 0 :(得分:1)
使用一个组(即:用(
和)
包围模式)并使用$1
进行访问:
var out = "{x:0,y:0,WIDTH:1920,hEiGhT:1080}";
var rgx = /\b([a-z]+)\b/gi; // use the flag 'i' to make it case-insensitive
console.log(out.replace(rgx, '"$1"'));