Javascript replace()函数

时间:2012-11-25 08:18:26

标签: javascript replace

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

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

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

2 个答案:

答案 0 :(得分:21)

anyNameYouLike = anyNameYouLike.replace('right','in');

答案 1 :(得分:9)

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

anyNameYouLike = anyNameYouLike.replace('right','in');

有关详细信息,请参阅MDN description of the .replace() method,其中说明了这一点:

  

返回一个新的字符串,其中一些或所有匹配的模式被替换为   一个替代品。模式可以是字符串或RegExp,以及   replacement可以是每个匹配要调用的字符串或函数。

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

  

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