118 votes

Comment détecter une chaîne qui ne contient que des espaces ?

Une longueur de chaîne qui contient un espace est toujours égale à 1 :

alert('My str length: ' + str.length);

L'espace est un personnage, donc :

str = "   ";
alert('My str length:' + str.length); // My str length: 3

Comment faire la distinction entre une chaîne vide et une chaîne qui ne contient que des espaces ? Comment puis-je détecter une chaîne qui ne contient que des espaces ?

188voto

Rory McCrossan Points 69838

Pour ce faire, vous pouvez utiliser une expression régulière pour supprimer tout l'espace blanc de la chaîne. Si la longueur de la chaîne résultante est 0, alors vous pouvez être sûr que l'original ne contenait que de l'espace blanc. Essayez ceci :

var str = "    ";
if (!str.replace(/\s/g, '').length) {
  console.log('string only contains whitespace (ie. spaces, tabs or line breaks)');
}

9voto

Shehzad Points 1377

Vous pouvez couper votre valeur de chaîne en créant une fonction de coupe pour vos chaînes.

String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

maintenant, il sera disponible pour chaque Chaîne et vous pouvez l'utiliser comme

str.trim().length// Result will be 0

Vous pouvez également utiliser cette méthode pour supprimer les espaces blancs au début et à la fin de la chaîne, c'est-à-dire

"  hello  ".trim(); // Result will be "hello"

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