97 votes

Supprimer tous les espaces multiples dans Javascript et les remplacer par un seul espace

Comment puis-je remplacer automatiquement toutes les instances de plusieurs espaces, par un seul espace, dans Javascript ?

J'ai essayé d'enchaîner quelques s.replace mais cela ne semble pas optimal.

J'utilise aussi jQuery, au cas où c'est une fonctionnalité de construction.

226voto

Josiah Points 1764

Vous pouvez utiliser une expression régulière remplacer :

str = str.replace(/ +(?= )/g,'');

Crédit : Le REGEX ci-dessus a été pris de Regex pour remplacer plusieurs espaces par un seul espace

55voto

Greg Shackles Points 7376

Il y a beaucoup d'options pour les expressions régulières que vous pourriez utiliser pour y parvenir. Un exemple qui donnera de bons résultats est :

str.replace( /\s\s+/g, ' ' )

Voir cette question pour une discussion complète sur ce problème exact : Regex doit remplacer plusieurs espaces par un seul espace

39voto

redexp Points 914

vous oubliez tous le quantificateur n{X,} http://www.w3schools.com/jsref/jsref_regexp_nxcomma.asp

ici meilleure solution

str = str.replace(/\s{2,}/g, ' ');

5voto

kennebec Points 33886

Vous pouvez également remplacer sans expression régulière.

while(str.indexOf('  ')!=-1)str.replace('  ',' ');

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X