检查一个字符串是否与JS中的正则表达式匹配
我想使用JavaScript(可以与jQuery)做一些客户端验证,以检查字符串是否与正则表达式匹配:
^([a-z0-9]{5,})$
理想情况下,这将是一个表达式,返回true或false。
我是一个JavaScript新手,不match()
做我需要什么? 它似乎检查一部分字符串是否匹配正则表达式,而不是整个事物。
使用regex.test()
如果你想要的只是一个布尔结果:
/^([a-z0-9]{5,})$/.test('abc1'); // false
/^([a-z0-9]{5,})$/.test('abc12'); // true
/^([a-z0-9]{5,})$/.test('abc123'); // true
...你可以从你的正则表达式中删除()
,因为你不需要捕获。
使用test()
方法:
var term = "sample1";
var re = new RegExp("^([a-z0-9]{5,})$");
if (re.test(term)) {
console.log("Valid");
} else {
console.log("Invalid");
}
你也可以使用match()
:
if (str.match(/^([a-z0-9]{5,})$/)) {
alert("match!");
}
但是test()
似乎更快,因为你可以在这里阅读。
match()
和test()
之间的重要区别:
match()
仅适用于字符串,但test()
也适用于整数。
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/92597.html