如何获取组的值并在JavaScript的一行中定义它?
如何在JavaScript中定义正则表达式组并在一行中访问它 我尝试使用eval获取已定义正则表达式组的值:如何获取组的值并在JavaScript的一行中定义它?,javascript,regex,Javascript,Regex,如何在JavaScript中定义正则表达式组并在一行中访问它 我尝试使用eval获取已定义正则表达式组的值: let str = ` global stuff = 1; global h = 0; function inc(arg) { inc = inc + 1; }; main { repeat(inc, 10); } `; str = str.replace(/repeat\((.*?|$1), (.*?|$2)\)/gm, "$1".repeat(eval("$2")))
let str = `
global stuff = 1;
global h = 0;
function inc(arg) {
inc = inc + 1;
};
main {
repeat(inc, 10);
}
`;
str = str.replace(/repeat\((.*?|$1), (.*?|$2)\)/gm, "$1".repeat(eval("$2")));
console.log(str);
我希望输出是
`global h = 0;
function inc(arg) {
h = h + 1;
};
main {
inc;
inc;
inc;
inc;
inc;
inc;
inc;
inc;
inc;
inc;
}`
,因为我想转换repeat(inc,10)代码>到
inc;
inc;
inc;
...
,但它给了我这个错误:ReferenceError:$2未定义
。我知道我在这里做的可能看起来很模糊,但这是我为编程语言编写的编译器代码的一部分。替换方法可以使用函数。这段代码在一行中完成了您的要求
let str=`
全球材料=1;
全局h=0;
功能公司(arg){
inc=inc+1;
};
主要{
重复(inc,10);
}
`;
str=str.replace(/(\s+)repeat\(.*?$1),(.*?$2)\)/gm,(match,p0,p1,p2)=>(p0+p1+“;”)。repeat(p2));
console.log(str)代码>为什么全部在一行中?