views:

83

answers:

4

I have a textbox collecting user input in my JS code. I would like to filter junk input, like strings that contain whitespaces only.

In C#, I would use the following code:

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

Do you have any recommendation, how to do the same in JavaScript?

+3  A: 

Use a regular expression:

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

or even easier:

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

The \S means 'any non white space character'.

Mark Byers
A: 
function trim (myString)
{
    return myString.replace(/^\s+/,'').replace(/\s+$/,'')
}

use it like this: if (trim(myString) == "")

Jerome C.
the `g` flags are redundant
just somebody
yes you are right, I've edited my answer to remove them. thanks.
Jerome C.
+1  A: 

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

Skilldrick
+3  A: 

The trim() method on strings does exist in the ECMAScript Fifth Edition standard and has been implemented by Mozilla (Firefox 3.5 and related browsers).

Until the other browsers catch up, you can fix them up like this:

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

then:

if (inputString.trim()==='')
    alert('white junk');
bobince
Why create all these new string objects when all he needs to do is check is there is a non-whitespace chacter?
Mark Byers