Javascript replace()函数

mse*_*ert 3 javascript replace

这是一个简单的replace()问题 - 我无法让它在下面的函数中替换子字符串.

function linkOnClick(){
    var anyNameYouLike = 'some sort of text/string right here';
    anyNameYouLike.replace('right','in');
    alert(anyNameYouLike)
}
Run Code Online (Sandbox Code Playgroud)

它应该返回"这里的某种文本/字符串",但不是.我究竟做错了什么?我对Javascript很新(如果不明显......)

Juv*_*nis 21

anyNameYouLike = anyNameYouLike.replace('right','in');
Run Code Online (Sandbox Code Playgroud)

  • `/右/ g` (3认同)
  • 有趣的是,这个简单的东西可以花多长时间搞清楚.感谢您抽出宝贵时间提供帮助. (2认同)

jfr*_*d00 9

在javascript中,字符串是不可变的(它们永远不会被修改).因此,该.replace()函数不会修改您调用它的字符串.相反,它返回一个新字符串.因此,如果要anyNameYouLike包含修改后的字符串,则必须将结果分配给它,如下所示:

anyNameYouLike = anyNameYouLike.replace('right','in');
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅说明此.replace()方法MDN描述:

返回一个新字符串,其中一个或所有匹配的模式由替换替换.模式可以是字符串或RegExp,替换可以是字符串或要为每个匹配调用的函数.

并且,在.replace()方法的描述中,它说:

此方法不会更改调用它的String对象.它只返回一个新字符串.