Javascript replace() with $1

Javascript replace() with $1

本文关键字:with replace Javascript      更新时间:2023-09-26

输入字符串为"thisISpinalTap"。我用它的小写版本替换了每个大写字母。我还想在信前面加一个-,以获得脊椎病例的效果"这是脊椎穿刺"。

我写了以下代码行:

str = str.replace(/([A-Z])/g, '-').toLowerCase();

这将每个大写字母替换为-以产生"This-s-pinal-ap"。这不是预期的效果。

我读到使用1美元可以产生我想要的效果,它确实做到了。

str = str.replace(/([A-Z])/g, '-$1').toLowerCase();

$1是如何将-附加到字符串中,而不是替换大写字母的?

$1是正则表达式中捕获的第一组。

因此,在这种情况下,-$1将替换与-匹配的内容,然后是([A-Z])中捕获的大写字母。