Javascript正则表达式代码未按预期工作

Javascript正则表达式代码未按预期工作,javascript,regex,ecmascript-6,Javascript,Regex,Ecmascript 6,我做了一个函数来分解一个字符串,把它分解成几个部分。 我在MDN上读到,通过将正则表达式放在括号中,我可以稍后使用$1引用它,但由于某些原因,我的代码无法工作。 我希望此函数返回'url this',但它是返回'$1his' 请帮忙 const someFunction=str=>{ 返回str.replace(/([A-Z]+)/g,('$1'.slice(0,-1).toLowerCase()+'+'$1'.slice(-1); } log(someFunction('URLThis'))

我做了一个函数来分解一个字符串,把它分解成几个部分。 我在MDN上读到,通过将正则表达式放在括号中,我可以稍后使用
$1
引用它,但由于某些原因,我的代码无法工作。 我希望此函数返回
'url this'
,但它是返回
'$1his'

请帮忙

const someFunction=str=>{
返回str.replace(/([A-Z]+)/g,('$1'.slice(0,-1).toLowerCase()+'+'$1'.slice(-1);
}

log(someFunction('URLThis'))
您可以将第二个参数中的函数传递给

const someFunction=str=>{
返回str.replace(/[A-Z]+//g,(匹配)=>{
返回match.slice(0,-1.toLowerCase()+“”+match.slice(-1.toLowerCase();
});
}

log(someFunction('URLThis'))
您可以将第二个参数中的函数传递给

const someFunction=str=>{
返回str.replace(/[A-Z]+//g,(匹配)=>{
返回match.slice(0,-1.toLowerCase()+“”+match.slice(-1.toLowerCase();
});
}

log(someFunction('URLThis'))
您需要使用函数作为第二个参数来处理替换结果。来自MDN:

因为我们想在之前进一步转换匹配结果 最后的替换完成后,我们必须使用一个函数。这迫使 在toLowerCase()方法之前对匹配的求值。如果我们 如果尝试使用不带函数的匹配来完成此操作 toLowerCase()将没有效果

这是因为“$&”.toLowerCase()将首先作为 在使用 字符作为模式


您需要使用一个函数作为第二个参数来处理替换结果。来自MDN:

因为我们想在之前进一步转换匹配结果 最后的替换完成后,我们必须使用一个函数。这迫使 在toLowerCase()方法之前对匹配的求值。如果我们 如果尝试使用不带函数的匹配来完成此操作 toLowerCase()将没有效果

这是因为“$&”.toLowerCase()将首先作为 在使用 字符作为模式


你很困惑。函数参数在调用函数之前求值<代码>'$1'。切片(0,-1)只是
$
@melpomene,那么我应该如何引用它呢?你很困惑。函数参数在调用函数之前求值<代码>“$1”。切片(0,-1)只是
$
@melpomene,那么我应该如何引用它呢?你甚至不需要那里的捕获参数。你甚至不需要那里的捕获参数。