Pourquoi la fonction remplacer () Javascript ne fonctionne-t-elle pas?

Voici ma fonction:

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

Il retourne '450px'

Voici un exemple:

Http://jsfiddle.net/D2Mgb/

Je veux qu'il remplisse «px» par rien.

En JavaScript, les chaînes sont immuables.

Tous les types sauf les objets définissent des valeurs immuables. Plus précisément, les chaînes sont immuables (contrairement à C par exemple).

Donc, str.replace renvoie une nouvelle chaîne. Essayez ceci à la place:

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

Ou si vous ne souhaitez pas écraser la chaîne d'origine, il suffit de la faire dans l'appel d' alert

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

Il vaut la peine de noter que .replace peut aussi prendre un regexp. Bien qu'il ne soit pas nécessaire dans votre cas, vous pourriez faire quelque chose comme ça pour obtenir le même résultat

 CSS_Left = CSS_left.replace(/px$/, ''); 

Parce que .replace() renvoie une nouvelle chaîne. Si vous souhaitez mettre à jour l'ancienne chaîne, vous devez écrire: CSS_Left = CSS_Left.replace('px', '');

Je ne suis pas sûr, mais la fonction replace () crée une nouvelle variable. Essaye ça :

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

La sortie de l'appel de remplacement doit être réaffectée à CSS_Left