2009-12-17 5 views
7

J'ai une zone de texte qui collecte les entrées utilisateur dans mon code JS. Je voudrais filtrer l'entrée indésirable, comme les chaînes qui contiennent uniquement des espaces.Filtrage des chaînes "espaces uniquement" en JavaScript

En C#, je voudrais utiliser le code suivant:

if (inputString.Trim() == "") Console.WriteLine("white junk"); 
else Console.WriteLine("Valid input"); 

Avez-vous une recommandation, comment faire la même chose en JavaScript?

Répondre

15

La méthode trim() sur les chaînes existe dans la norme ECMAScript cinquième édition et a été implémenté par Mozilla (Firefox 3.5 et les navigateurs associés).

Jusqu'à ce que les autres navigateurs rattrapent, vous pouvez les corriger comme ça:

if (!('trim' in String.prototype)) { 
    String.prototype.trim= function() { 
     return this.replace(/^\s+/, '').replace(/\s+$/, ''); 
    }; 
} 

alors:

if (inputString.trim()==='') 
    alert('white junk'); 
10

utiliser une expression régulière:

if (inputString.match(/^\s*$/)) { alert("not ok"); } 

ou encore plus facile:

if (inputString.match(/\S/)) { alert("ok"); } 

Les moyens \ S 'tout espace non blanc'.

1
function trim (myString) 
{ 
    return myString.replace(/^\s+/,'').replace(/\s+$/,'') 
} 

utiliser comme ceci: si (trim (myString) == "")

+0

les 'drapeaux g' sont redondants –

+0

oui, vous avez raison, je l'ai édité ma réponse pour les enlever. Merci. –

2

Alternativement, /^\s*$/.test(inputString)

Questions connexes