a.replace( /(f)/, "$1".-6ren">
gpt4 book ai didi

javascript - 在 Javascript 中用大写字母替换正则表达式捕获组

转载 作者:IT王子 更新时间:2023-10-29 02:51:33 26 4
gpt4 key购买 nike

我想知道如何在 JavaScript 中用大写字母替换捕获组。这是我迄今为止尝试过但不起作用的简化版本:

> a="foobar"
'foobar'
> a.replace( /(f)/, "$1".toUpperCase() )
'foobar'
> a.replace( /(f)/, String.prototype.toUpperCase.apply("$1") )
'foobar'

你能解释一下这段代码有什么问题吗?

最佳答案

您可以传递一个函数来replace

var r = a.replace(/(f)/, function(v) { return v.toUpperCase(); });

解释

a.replace( /(f)/, "$1".toUpperCase())

在此示例中,您将一个字符串传递给替换函数。由于您正在使用特殊的替换语法 ($N 获取第 N 个捕获),您只是给出了相同的值。 toUpperCase 实际上是在欺骗,因为您只是将替换字符串设为大写 ​​(这有点毫无意义,因为 $ 和一个 1字符没有大写字母,因此返回值仍为 "$1")

a.replace( /(f)/, String.prototype.toUpperCase.apply("$1"))

信不信由你,这个表达式的语义是完全一样的。

关于javascript - 在 Javascript 中用大写字母替换正则表达式捕获组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6142922/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com