协慌网

登录 贡献 社区

检查字符串是否与 JS 中的正则表达式匹配

我想使用 JavaScript(可以与 jQuery 一起使用)进行一些客户端验证,以检查字符串是否与正则表达式匹配:

^([a-z0-9]{5,})$

理想情况下,它将是一个返回 true 或 false 的表达式。

我是 JavaScript 新手, match()是否可以满足我的需求?似乎要检查字符串的一部分是否与正则表达式匹配,而不是整个字符串。

答案

如果想要的只是布尔结果,请使用regex.test()

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

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

console.log(/^([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