178 votes

Supprimer les espaces à l'intérieur d'une chaîne de caractères en javascript

J'ai lu cette question sur le trim javascript, avec une réponse regex.

Ensuite, j'attends de la garniture qu'elle enlève le intérieur entre Hello et World.

function myFunction() {
    alert("Hello World ".trim());
}

MODIFIÉ

Pourquoi je m'attendais à cela ?

C'est absurde ! Il est évident que le trim ne supprime pas les espaces intérieurs, mais seulement les espaces de début et de fin, c'est ainsi que le trim fonctionne, alors cette question était très erronée, mes excuses.

366voto

limelights Points 7833

Pour supprimer les caractères d'espacement, utilisez

"hello world".replace(/\s/g, "");

pour tous les espaces blancs, utilisez la suggestion de Rocket dans les commentaires ci-dessous !

43voto

ArlanG Points 50

Vous pouvez utiliser

"Hello World ".replace(/\s+/g, '');

trim() ne supprime que les espaces de fin de chaîne (premier et dernier de la chaîne). Dans ce cas, regExp est plus rapide car vous pouvez supprimer un ou plusieurs espaces en même temps.

Si vous remplacez la chaîne vide par "$", la différence devient beaucoup plus claire :

var string= '  Q  W E   R TY ';
console.log(string.replace(/\s/g, '$'));  // $$Q$$W$E$$$R$TY$
console.log(string.replace(/\s+/g, '#')); // #Q#W#E#R#TY#

Comparaison des performances - /\s+/g est plus rapide. Voir ici : http://jsperf.com/s-vs-s

Mise à jour

Vous pouvez également l'utiliser :

console.log(string.replaceAll(/\s/, '#')); // #Q#W#E#R#TY#

String.prototype.replaceAll()

12voto

John Conde Points 102874

Probablement parce que vous avez oublié de mettre en œuvre la solution dans la réponse acceptée . C'est le code qui fait que trim() travail.

mise à jour

Cette réponse ne s'applique qu'aux anciens navigateurs. Les navigateurs plus récents prennent apparemment en charge trim() nativement.

12voto

Sayed Kazimi Points 11

La meilleure façon de procéder est de procéder de cette manière si vous ne voulez remplacer que les espaces blancs :

let str = " H e l l o 1  5 9   ";
let onlyCharacters = str.replaceAll(" ", "");

// onlyCharacters = Hello159

J'ai utilisé str.replace(/\s/g, ""); beaucoup mais cela ne fonctionne pas dans tous les navigateurs par exemple cela ne fonctionne pas dans duckduckgo dans Android et aussi cela ne fonctionne pas dans Android webview.

6voto

JSON C11 Points 3146

Vous pouvez utiliser des chaînes de caractères remplacer avec une expression régulière.

"Hello World ".replace(/ /g, "");

La méthode replace() renvoie une nouvelle chaîne de caractères contenant une partie ou la totalité des éléments d'une chaîne de caractères. d'un motif remplacées par un remplacement. Le motif peut être une chaîne de caractères ou une RegExp

RegExp

  • / / - Expression régulière correspondant aux espaces

  • g - Indicateur global ; recherche toutes les correspondances plutôt que de s'arrêter à la première.

    const str = "H e l l o World! ".replace(/ /g, ""); document.getElementById("greeting").innerText = str;

    <p id="greeting"><p>

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