javascript 正则表达式以相邻的小写和大写字符为目标

vbkedwbf  于 2023-05-12  发布在  Java
关注(0)|答案(2)|浏览(111)
function spinalCase(str) {

  //Replace aB to a-B
  return str.replace(/[a-z]+[A-Z]/,'$1,-,$2');
}

spinalCase('ThisIsSpinalTap');

我希望输入“ThisIsSpinalTap”输出“This-Is-Spinal-Tap”,方法是使用正则表达式来定位与大写字母相邻的小写字母,并在中间添加-。我得到的错误输出是这样的。
t$1,$2ssspinaltap
MDN参考https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace

2vuwiymt

2vuwiymt1#

使用capturing groups-

function tap(str) {
  return str.replace(/([a-z])([A-Z])/g, '$1-$2');
}

console.log(tap('ThisIsSpinalTap'));
pgvzfuti

pgvzfuti2#

你需要在你期望的1美元和2美元的部分周围加上括号。

/([a-z]+)([A-Z])/

相关问题