Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Javascript replace()函数什么都不做?_Javascript - Fatal编程技术网

为什么Javascript replace()函数什么都不做?

为什么Javascript replace()函数什么都不做?,javascript,Javascript,以下是我的功能: CSS_Left = '450px'; CSS_Left.replace('px', ''); alert(CSS_Left); 它返回“450px” 下面是一个例子: 我希望它能将“px”替换为零。在JavaScript中是不可变的 除对象外的所有类型都定义不可变的值。具体来说,字符串是不可变的(例如,与C不同) 因此,返回一个新字符串。请尝试以下方法: CSS_Left = CSS_Left.replace('px', ''); 或者,如果不想覆盖原始字符串,只需在警

以下是我的功能:

CSS_Left = '450px';
CSS_Left.replace('px', '');
alert(CSS_Left);
它返回“450px”

下面是一个例子:

我希望它能将“px”替换为零。

在JavaScript中是不可变的

除对象外的所有类型都定义不可变的值。具体来说,字符串是不可变的(例如,与C不同)

因此,返回一个新字符串。请尝试以下方法:

CSS_Left = CSS_Left.replace('px', '');
或者,如果不想覆盖原始字符串,只需在
警报
调用中执行即可

alert(CSS_Left.replace('px', ''));

值得注意的是,
.replace
也可以使用regexp。虽然在您的情况下没有必要这样做,但您可以这样做以获得相同的结果

CSS_Left = CSS_left.replace(/px$/, '');
因为
.replace()
返回一个新字符串。如果要更新旧字符串,应编写:
CSS_Left=CSS_Left.replace('px','')

我不确定,但是函数replace()创建了一个新变量。 试试这个:

var CSS_Left = '450px';
CSS_Left = CSS_Left.replace('px', '');
alert(CSS_Left);

replace调用的输出需要重新分配到CSS_Left

我不敢相信我错过了X(.非常感谢!这让我很困惑。此外,字符串对象是不可变的。你不能编辑它们,只能创建修改过的新实例。@LexLythius,我要记下。感谢你的评论。谷歌“javascript替换”真的这么难吗看看,好吧,接近任何一个结果?它们将显示此方法的正确使用。更好的复制的可能复制: