gpt4 book ai didi

javascript - RegExp 中的反向引用替换功能不起作用

转载 作者:行者123 更新时间:2023-11-30 10:01:50 24 4
gpt4 key购买 nike

下面是我的字符串替换代码:

var input = "player @renish Score";
var matches = input.replace(/@\w*/g,'$1 55');

输出是

player $1 55 Score

我想要这样的输出

player @renish 55 Score

最佳答案

$1 称为反向引用,只有存在有效的捕获组时它才有效。

引用 MDN 的 Grouping and back references节,

(x)

Matches x and remembers the match. These are called capturing parentheses.

For example, /(foo)/ matches and remembers "foo" in "foo bar". The matched substring can be recalled from the resulting array's elements [1], ..., [n] or from the predefined RegExp object's properties $1, ..., $9. You need to introduce a capturing group, like this

console.log(input.replace(/(@\w*)/g,'$1 55'));

现在,我们捕获字符串 @\w*$1 将代表捕获的字符串。


或者,根据 ECMA Script 5.1 Specification for String.prototype.replace ,可以使用$&来表示匹配的字符串。

$&

The matched substring.

因此,您可以按原样使用代码,只需将替换模式更改为 $&,如下所示

console.log(input.replace(/@\w*/g,'$& 55'));

关于javascript - RegExp 中的反向引用替换功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31186516/

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