如何用自己和某些串联替换每个正则表达式匹配项?

时间:2019-04-12 17:19:34

标签: javascript regex

我有一个控制台输出,该输出是字符串{x:0,y:0,width:1920,height:1080},需要将其转换为对象,但是在所有属性都被引号引起来之前,我无法对其进行JSON.parse()转换。

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

1 个答案:

答案 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"'));