0

这是我的功能:

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

它返回“450px”

这是一个例子:

http://jsfiddle.net/D2Mgb/

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

4

4 回答 4

4

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

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

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

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

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

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

值得注意的是,.replace也可以采用正则表达式。尽管在您的情况下没有必要,但您可以执行类似的操作来获得相同的结果

CSS_Left = CSS_left.replace(/px$/, '');
于 2013-09-05T23:17:15.517 回答
3

因为.replace()返回一个新字符串。如果你想更新旧字符串,你应该写: CSS_Left = CSS_Left.replace('px', '');

于 2013-09-05T23:17:35.460 回答
0

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

var CSS_Left = '450px';
CSS_Left = CSS_Left.replace('px', '');
alert(CSS_Left);
于 2013-09-05T23:18:24.117 回答
0

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

于 2013-09-05T23:18:43.603 回答