web-dev-qa-db-fra.com

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

Comment puis-je remplacer automatiquement toutes les occurrences de plusieurs espaces par un seul espace en Javascript?

J'ai essayé de chaîner certains s.replace mais cela ne semble pas optimal.

J'utilise jQuery également, au cas où ce serait une fonctionnalité intégrée.

73
Alex

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

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

Crédit: La regex ci-dessus a été prise à partir de Regex pour remplacer plusieurs espaces par un seul espace

147
Josiah

Vous pouvez utiliser de nombreuses options pour les expressions régulières à cette fin. Un exemple qui fonctionnera bien est:

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

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

41
Greg Shackles

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

voici la meilleure solution

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

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

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