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.

0voto

Lars Flieger Points 509

Vous pouvez utiliser une solution récursive :

function removeWhitespaces(string, i = 0, res = "") {
  if (i >= string.length)
    return res
  else
  if (string[i] == " ")
    return removeWhitespaces(string, i + 1, res)
  else
    return removeWhitespaces(string, i + 1, res += string[i])
}

console.log(removeWhitespaces(" Hello World,   how is it going ? "))

0voto

Vulgo Alias Points 101

La réponse précise à la manière d'aborder cette question dépend de l'intention précise. Pour supprimer tout ou partie des caractères d'espacement, vous devez utiliser :

's t r i n g'.replace(\s+\g, '')

Si l'intention est de ne supprimer que des types spécifiques d'espaces blancs (par exemple, les espaces minces ou capillaires), ils doivent être énumérés explicitement comme ceci :

's t r i n g'.replace(\ |\t \g, '')

Cependant, si l'intention est de supprimer uniquement les espaces simples, la meilleure solution en termes de performances est la suivante :

's t r i n g'.replace(' ', '')


Ici est un point de repère permettant de comparer les résultats. Il y a une légère différence de performance entre les solutions regexp, mais elle est plutôt insignifiante. Cependant, le remplacement basé sur les chaînes de caractères surpasse les regexps dans le benchmark lié d'environ un ordre de grandeur d'ops/s. ( https://jsbench.me/drlfuphfhk/1 )

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