J'ai des chaînes avec des espaces supplémentaires, chaque fois qu'il y a plus d'un seul espace, j'aimerais que ce soit un seul.
N'importe qui? J'ai essayé de chercher sur Google, mais rien n'a fonctionné pour moi.
Merci
javascript
string
trim
veille
la source
la source
Réponses:
Quelque chose comme ça:
la source
Vous pouvez augmenter String pour implémenter ces comportements en tant que méthodes, comme dans:
Cela vous permet désormais d'utiliser les formes élégantes suivantes pour produire les chaînes souhaitées:
la source
l'utilisation d'une expression régulière avec la fonction replace fait l'affaire:
la source
Voici une solution non-regex (juste pour le plaisir):
Il divise la chaîne par des espaces , les supprime tous les éléments de tableau vides du tableau (ceux qui étaient plus d'un seul espace), et joint à nouveau tous les mots dans une chaîne, avec un seul espace entre eux.
la source
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 tous les espaces?
Si tel est le cas, vous aurez besoin d'une expression régulière comme celle-ci:
Cela supprimera tous les espaces du début ou de la fin de la chaîne. Si vous voulez seulement couper les espaces à partir de la fin, alors l'expression régulière ressemblerait à ceci à la place:
J'espère que cela pourra aider.
la source
''
place de' '
.jQuery.trim () fonctionne bien.
http://api.jquery.com/jQuery.trim/
la source
Je sais que je ne devrais pas nécromancie sur un sujet, mais étant donné les détails de la question, je l'élargis généralement pour signifier:
Pour cela, j'utilise un code comme celui-ci (les parenthèses sur la première expression régulière sont là juste pour rendre le code un peu plus lisible ... les expressions régulières peuvent être pénibles à moins que vous ne les connaissiez):
La raison pour laquelle cela fonctionne est que les méthodes sur String-object renvoient un objet string sur lequel vous pouvez invoquer une autre méthode (tout comme jQuery et certaines autres bibliothèques). Manière beaucoup plus compacte de coder si vous souhaitez exécuter plusieurs méthodes successivement sur un seul objet.
la source
var x = "Test Test Test" .split ("") .join (""); alerte (x);
la source
Essaye ça.
le résultat sera
Ce qui s'est passé ici, c'est qu'il coupera d'abord les espaces extérieurs en utilisant,
trim()
puis les espaces intérieurs en utilisant.replace(/\s+/g, ' ')
.la source
Si vous souhaitez restreindre l'utilisateur à donner un espace vide dans le nom, créez simplement une instruction if et indiquez la condition. comme j'ai fait:
la source
Celui-ci, ça va?
"my test string \t\t with crazy stuff is cool ".replace(/\s{2,9999}|\t/g, ' ')
les sorties
"my test string with crazy stuff is cool "
Celui-ci supprime également tous les onglets
la source
\s
. Une regex inutilement complexe, pourrait tout aussi bien écrire/\s+/g
.