3

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

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

它应该返回“这里的某种文本/字符串”,但没有。我究竟做错了什么?我对 Javascript 相当陌生(如果不是很明显......)

4

2 回答 2

21
anyNameYouLike = anyNameYouLike.replace('right','in');
于 2012-11-25T08:19:32.290 回答
9

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

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

有关更多信息,请参阅该方法的MDN 描述,该描述.replace()如下:

返回一个新字符串,其中模式的部分或全部匹配被替换替换。模式可以是字符串或正则表达式,替换可以是字符串或每次匹配调用的函数。

而且,在该.replace()方法的描述中,它是这样说的:

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

于 2012-11-25T08:25:00.070 回答