Avec une chaîne de caractères comme :
"lorem ipsum dolor sit amet"
Comment utiliser JavaScript pour limiter les espaces à un seul espace au maximum (préférablement avec regex) ?
Voici l’objectif :
"lorem ipsum dolor sit amet"
Avec une chaîne de caractères comme :
"lorem ipsum dolor sit amet"
Comment utiliser JavaScript pour limiter les espaces à un seul espace au maximum (préférablement avec regex) ?
Voici l’objectif :
"lorem ipsum dolor sit amet"
Si vous souhaitez également prendre en compte les tabulations, les nouvelles lignes, etc., il suffit de remplacer \s\s+
par ’ ’ :
ma_str = ma_str.replace(/\s\s+/g, ' ');
Si vous souhaitez vraiment traiter uniquement les espaces (et donc pas les tabulations, les nouvelles lignes, etc), procédez de cette manière :
ma_str = ma_str.replace(/ +/g, ' ');
var str = "lorem ipsum dolor sit amet";
str = str.replace(/ {2,}/g,' ');
REMARQUE : Si vous voulez remplacer tous les caractères d’espacement, la méthode la plus efficace est la suivante :
str = str.replace(/\s{2,}/g,' ');
Une méthode plus robuste : Cette méthode permet de supprimer également les espaces initiales et de fin, s’il y en a. Par exemple :
var str = "lorem ipsum dolor sit amet";
str = str.replace(/^\s+|\s+$|\s+(?=\s)/g, "");
// sortie: "lorem ipsum dolor sit amet"
Voici une solution alternative si vous ne voulez pas utiliser replace (remplacer les espaces dans une chaîne sans utiliser replace Javascript)
var str = "lorem ipsum dolor sit amet";
var rule = /\s{1,}/g;
str = str.split(rule).join(" ");
console.log(str);