Check whether a string matches a regex in JS
I want to use JavaScript (can be with jQuery) to do some client-side validation to check whether a string matches the regex:
^([a-z0-9]{5,})$
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.
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.
使用test()
方法:
var term = "sample1";
var re = new RegExp("^([a-z0-9]{5,})$");
if (re.test(term)) {
console.log("Valid");
} else {
console.log("Invalid");
}
You can use match()
as well:
if (str.match(/^([a-z0-9]{5,})$/)) {
alert("match!");
}
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
链接地址: http://www.djcxy.com/p/92598.html