J'ai des chaînes de caractères avec des espaces supplémentaires, chaque fois qu'il y a plus d'un espace, je voudrais qu'il n'y en ait qu'un seul.
Quelqu'un ? J'ai essayé de chercher sur Google, mais rien n'a marché pour moi.
Merci
J'ai des chaînes de caractères avec des espaces supplémentaires, chaque fois qu'il y a plus d'un espace, je voudrais qu'il n'y en ait qu'un seul.
Quelqu'un ? J'ai essayé de chercher sur Google, mais rien n'a marché pour moi.
Merci
@Me Veuillez lire attentivement la question : "chaque fois qu'il y a plus d'un espace blanc, je voudrais qu'il n'y en ait qu'un seul".
N'est-ce pas évident ? Il remplace plus d'un caractère d'espacement par un caractère d'espacement. (le résultat souhaité)
Vous pouvez augmenter String pour implémenter ces comportements comme des méthodes, comme dans :
String.prototype.killWhiteSpace = function() {
return this.replace(/\s/g, '');
};
String.prototype.reduceWhiteSpace = function() {
return this.replace(/\s+/g, ' ');
};
Cela vous permet maintenant d'utiliser les formes élégantes suivantes pour produire les chaînes de caractères que vous souhaitez :
"Get rid of my whitespaces.".killWhiteSpace();
"Get rid of my extra whitespaces".reduceWhiteSpace();
Cette solution est fausse par rapport à la question. Et je me demande vraiment pourquoi vous l'avez postée deux jours après qu'une meilleure solution ait été postée...
Je pense qu'à l'époque, seul ce code a fonctionné pour moi. Je ne peux pas revenir en arrière pour le confirmer. J'aurais évidemment essayé la meilleure solution en premier. De plus, en vérifiant dans la console de chrome, les deux solutions semblaient fonctionner. Il est toutefois intéressant de noter que, lorsque j'ai copié le résultat dans cette boîte de commentaires, il est apparu que ma solution ne fonctionnait pas pour les espaces blancs multiples. Peut-être pouvez-vous m'aider à comprendre pourquoi. Je suppose que c'est une erreur de chrome ? Essayez d'exécuter mon code dans la console de chrome et faites-moi savoir.
Je suppose que vous cherchez à supprimer les espaces du début et/ou de la fin de la chaîne (plutôt que de supprimer les espaces de la chaîne). todo des espaces ?
Si c'est le cas, vous aurez besoin d'une regex comme celle-ci :
mystring = mystring.replace(/(^\s+|\s+$)/g,' ');
Cela supprimera tous les espaces du début ou de la fin de la chaîne. Si vous souhaitez uniquement supprimer les espaces de la fin, la regex ressemblera plutôt à ceci :
mystring = mystring.replace(/\s+$/g,' ');
J'espère que cela vous aidera.
J'aime la simplicité de votre regex, @Spudley, mais votre code ne va-t-il pas remplacer les espaces au début et à la fin par un seul caractère d'espace ? Je pensais que l'objectif était de supprimer entièrement les espaces à la fin, auquel cas la chaîne de remplacement devrait être la suivante ''
au lieu de ' '
.
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.
2 votes
Supprimer les espaces blancs en double à la fin/au début, ou n'importe où dans le texte ?
1 votes
Duplicata possible de Regex pour remplacer les espaces multiples par un seul espace