为什么 Javascript replace() 函数不做任何事情

Why does the Javascript replace() function not do anything?

本文关键字:任何事 函数 Javascript replace 为什么      更新时间:2023-09-26

这是我的函数:

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

它返回"450px"

下面是一个示例:

http://jsfiddle.net/D2Mgb/

我希望它用什么都没有替换"px"。

在 JavaScript 中,字符串是不可变的。

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

因此,str.replace返回一个新字符串。试试这个:

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

或者,如果您不想覆盖原始字符串,只需在alert调用中执行此操作

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

值得注意的是,.replace也可以进行正则表达式。虽然在您的情况下没有必要,但您可以做这样的事情来获得相同的结果

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);

替换调用的输出需要重新分配给CSS_Left