var variableABC = "A B C";
variableABC.replace('B', 'D') //wanted output: 'A D C'
mais 'variableABC' n'a pas changé:
variableABC = 'A B C'
quand je veux que ce soit 'A D C'.
Selon la norme Javascript, String.replace
N'est pas censé modifier la chaîne elle-même. Il retourne simplement la chaîne modifiée. Vous pouvez vous référer à documentation de Mozilla Developer Network pour plus d'informations.
Vous pouvez toujours simplement définir la chaîne sur la valeur modifiée:
variableABC = variableABC.replace('B', 'D')
Edit: Le code donné ci-dessus ne remplace que la première occurrence.
Pour remplacer toutes les occurrences, vous pouvez faire:
variableABC = variableABC.replace(/B/g, "D");
Pour remplacer toutes les occurrences et ignorer la casse
variableABC = variableABC.replace(/B/gi, "D");
Les chaînes sont toujours modélisées comme immuable (au moins dans les langages de niveau supérieur python/Java/javascript/Scala/Objective-C).
Ainsi, toute opération de chaîne telle que la concaténation, les remplacements toujours renvoie une nouvelle chaîne contenant la valeur voulue, alors que la chaîne d'origine sera toujours la même.
String.replace return n'est-il pas une valeur plutôt que de modifier la chaîne source?
Donc si vous voulez modifier variableABC, vous devez faire ceci:
var variableABC = "A B C";
variableABC = variableABC.replace('B', 'D') //output: 'A D C'
Si vous souhaitez simplement supprimer toutes les occurrences d'une sous-chaîne d'une chaîne sans utiliser regex, vous pouvez utiliser:
var replacestring = "A B B C D"
const oldstring = "B";
const newstring = "E";
while (replacestring.indexOf(oldstring) > -1) {
replacestring = replacestring.replace(oldstring, newstring);
}
//result: "A E E C D"