首页 > 解决方案 > 如何用自身和一些连接替换每个正则表达式匹配?

问题描述

我有一个控制台输出,它是一个字符串{x:0,y:0,width:1920,height:1080},需要将其转换为对象,但我不能 JSON.parse() 它直到所有属性都被引号包围。

我设法找到与任何单词匹配的正则表达式:\b[\w]+\b但我不知道如何使用每个匹配项来替换'"' + match + '"'双方。我意识到那里也有数字,所以也许这将是一个更好的正则表达式:\b[a-zA-Z]+\b前提是属性名称从不包含数字。

标签: javascriptregex

解决方案


使用一个组(即:用(and包围模式))并用 访问它$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"'));


推荐阅读