user1869870
user1869870

Reputation: 473

Regex to check if whitespace present?

Seems pretty simple, but cannot figure out why this javascript code isn't working returning false, when expecting true) - I'm guessing it has got to do something with the escape characters? Could someone please help me write a JS block that will return true if whitespace present?

var inValid = new RegExp("[\s]");
var value = "test space";
var k = inValid.test(value);
alert(k);

Upvotes: 20

Views: 87261

Answers (5)

Dinoop Unnikrishnan
Dinoop Unnikrishnan

Reputation: 1

var inValid = /^/\s/;
var value = "test value";
var k = inValid.test(value);
alert(k);

Upvotes: -1

jfriend00
jfriend00

Reputation: 707328

You don't need the brackets, you would need to escape the backslash (if using the string form) and the built-in regex syntax is easier because you don't have to escape backslashes when using the built-in regex syntax.

var inValid = /\s/;
var value = "test space";
var k = inValid.test(value);
alert(k);

Upvotes: 38

kennebec
kennebec

Reputation: 104780

If you want to match something there, but no whitespace:

alert(/^\S+$/.test(value));

Upvotes: 6

Kenneth
Kenneth

Reputation: 28737

You need a double escape character:

one for the "s" and one for the "\" itself:

var inValid = new RegExp("[\\s]");

Upvotes: 3

Andrew Clark
Andrew Clark

Reputation: 208475

You need to escape the backslash if you are creating your RegExp object from a string literal:

var inValid = new RegExp("[\\s]");

Alternatively you can just use the following:

var inValid = /\s/;

This uses a regular expression literal so the escaping of the backslash is not necessary, and there is no need for the character class here so I dropped the square brackets as well.

Upvotes: 5

Related Questions