J'ai une chaîne qui contient plusieurs espaces. Je veux les remplacer par un symbole plus. Je pensais pouvoir utiliser
var str = 'a b c';
var replaced = str.replace(' ', '+');
mais cela ne remplace que la première occurrence. Comment puis-je le faire remplacer toutes les occurrences?
Voici une alternative qui ne nécessite pas de regex:
var str = 'a b c';
var replaced = str.split(' ').join('+');
Vous avez besoin de l'option /g
(globale), comme ceci:
var replaced = str.replace(/ /g, '+');
Vous pouvez essayer ici . Contrairement à la plupart des autres langages, JavaScript, par défaut, ne remplace que la première occurrence.
var str = 'a b c';
var replaced = str.replace(/\s/g, '+');
Utilisez la recherche globale dans la chaîne. g drapeau
str.replace(/\s+/g, '+');
source: fonction replaceAll
Utilisez une expression régulière avec le modificateur g
:
var replaced = str.replace(/ /g, '+');
De tilisation d'expressions régulières avec JavaScript et ActionScript :
/ g active la correspondance "globale". Lorsque vous utilisez la méthode replace (), spécifiez ce modificateur pour remplacer toutes les correspondances, plutôt que la première.
Vous devez rechercher une option replaceAll
str = str.replace(/ /g, "+");
il s'agit d'une méthode d'expression régulière permettant de remplacer un tout.
function ReplaceAll(Source, stringToFind, stringToReplace) {
var temp = Source;
var index = temp.indexOf(stringToFind);
while (index != -1) {
temp = temp.replace(stringToFind, stringToReplace);
index = temp.indexOf(stringToFind);
}
return temp;
}
String.prototype.ReplaceAll = function (stringToFind, stringToReplace) {
var temp = this;
var index = temp.indexOf(stringToFind);
while (index != -1) {
temp = temp.replace(stringToFind, stringToReplace);
index = temp.indexOf(stringToFind);
}
return temp;
};
Dans certains navigateurs
(MSIE "comme d'habitude" ;-))
le remplacement d’espace dans une chaîne ignore l’espace insécable (le code de 160 caractères).
On devrait toujours remplacer comme ceci:
myString.replace(/[ \u00A0]/, myReplaceString)
Très belle explication détaillée:
http://www.adamkoch.com/2009/07/25/white-space-and-character-160/