您可以将函数传递给
replace。
var r = a.replace(/(f)/, function(v) { return v.toUpperCase(); });说明
a.replace( /(f)/, "$1".toUpperCase())
在此示例中,您将字符串传递给replace函数。因为您使用的是特殊的替换语法 ($ N捕获第N个捕获),所以
您只是赋予了相同的值。
toUpperCase实际上,这是骗人的,因为您仅使替换字符串大写
(这是没有意义的,因为
$和
1字符没有大写,因此返回值仍然是
"$1")。
a.replace( /(f)/, String.prototype.toUpperCase.apply("$1"))信不信由你,这个表达的语义是完全一样的。



