JavaScript的替换()函数[重复](Javascript replace() functio

2019-07-04 03:17发布

这个问题已经在这里有一个答案:

  • 不更换[复制]替换功能 2个回答

这是一个简单的替换()的问题 - 我不能让它工作,以取代在下面的功能的子字符串。

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

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

Answer 1:

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


Answer 2:

在JavaScript中,字符串是不可变的(他们决不会被修改)。 因此, .replace()函数不修改调用它的字符串。 相反,它返回一个新字符串。 所以,如果你想anyNameYouLike包含修改后的字符串,你必须将结果分配给它这样的:

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

欲了解更多信息,请参阅该的MDN说明.replace()方法,其中这样说:

返回与一些或替换替换模式的所有匹配一个新的字符串。 该图案可以是一个字符串或一正则表达式,和替换可以是字符串或一个函数被调用为每个匹配。

并且,在的描述.replace()方法时,这样说:

此方法不改变它被称为在String对象。 它只是返回一个新字符串。



文章来源: Javascript replace() function [duplicate]