Check whether a string matches a regex in JS

Richard Source

I want to use JavaScript (can be with jQuery) to do some client-side validation to check whether a string matches the regex:


Ideally it would be an expression that returned true or false.

I'm a JavaScript newbie, does match() do what I need? It seems to check whether part of a string matches a regex, not the whole thing.



answered 7 years ago user113716 #1

Use regex.test() if all you want is a boolean result:

/^([a-z0-9]{5,})$/.test('abc1');   // false

/^([a-z0-9]{5,})$/.test('abc12');   // true

/^([a-z0-9]{5,})$/.test('abc123');   // true

...and you could remove the () from your regexp since you've no need for a capture.

answered 7 years ago user278064 #2

Use /youregexp/.test(yourString) if you only want to know whether your string matches the regexp.

answered 4 years ago user2449231 #3

Here's an example that looks for certain HTML tags so it's clear that /someregex/.test() returns a boolean:

if(/(span|h[0-6]|li|a)/i.test("h3")) alert('true');

answered 4 years ago pmrotule #4

You can use match() as well:

if (str.match(/^([a-z0-9]{5,})$/)) {

But test() seems to be faster as you can read here.

Important difference between match() and test():

match() works only with strings, but test() works also with integers.

12345.match(/^([a-z0-9]{5,})$/); // ERROR
/^([a-z0-9]{5,})$/.test(12345);  // true
/^([a-z0-9]{5,})$/.test(null);   // false

// Better watch out for undefined values
/^([a-z0-9]{5,})$/.test(undefined); // true

answered 3 years ago Abhijeet Kasurde #5

Use test() method :

var string = "sample1";
var re = new RegExp("^([a-z0-9]{5,})$");
if (re.test(string)) {
} else {

answered 6 days ago Aysun #6

 let regexp = /[a-d]/gi;

comments powered by Disqus