我想使用 JavaScript(可以使用 jQuery)来做一些客户端验证来检查字符串是否与正则表达式匹配:
^([a-z0-9]{5,})$
理想情况下,它将是一个返回 true 或 false 的表达式。
我是 JavaScript 新手,可以满足match()
我的需求吗?它似乎检查字符串的一部分是否与正则表达式匹配,而不是整个事情。
我想使用 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
使用/youregexp/.test(yourString)
,如果你只是想知道你的字符串是否与正则表达式匹配。
这是一个查找某些 HTML 标签的示例,因此很明显/someregex/.test()
返回一个布尔值:
if(/(span|h[0-6]|li|a)/i.test("h3")) alert('true');