JavaScript Regex代码无法正常工作



我发挥了一个函数,将其分解为部分。我在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()将首先评估为 字符串文字(在使用相同的" $&')之前 字符作为模式。

最新更新