我发挥了一个函数,将其分解为部分。我在MDN上读到,通过将REGEX放入括号中,我可以稍后使用$1
引用它,但由于某种原因,我的代码无法正常工作。我希望此功能返回'url this'
,但它是返回'$ 1his'
。
请帮助!
const someFunction = str => {
return str.replace(/([A-Z]+)/g,('$1'.slice(0,-1).toLowerCase() + ' ' + '$1'.slice(-1).toLowerCase()));
}
console.log(someFunction('URLThis'))
您可以将第二个参数以string#replace
的功能传递给
const someFunction = str => {
return str.replace(/[A-Z]+/g, (match) => {
return match.slice(0,-1).toLowerCase() + ' ' + match.slice(-1).toLowerCase();
});
}
console.log(someFunction('URLThis'))
您将要使用函数作为操纵替换结果的第二个参数。来自mdn string.prototype.replace():
因为我们想进一步改变比赛的结果 最终的替换是,我们必须使用功能。这力量 在TolowerCase()方法之前对比赛的评估。要是我们 试图使用比赛没有功能来执行此操作, tolowercase()无效。
这是因为'$&'。tolowowercase()将首先评估为 字符串文字(在使用相同的" $&')之前 字符作为模式。