我想使用JavaScript(我也可以使用jQuery)来做检查字符串是否匹配正则表达式^([a-z0-9]{5,})$,并得到一个真或假的结果。
Match()似乎是检查字符串的一部分是否匹配正则表达式,而不是整个正则表达式。它能解决问题吗?我能用它来解决问题吗?如何?
我想使用JavaScript(我也可以使用jQuery)来做检查字符串是否匹配正则表达式^([a-z0-9]{5,})$,并得到一个真或假的结果。
Match()似乎是检查字符串的一部分是否匹配正则表达式,而不是整个正则表达式。它能解决问题吗?我能用它来解决问题吗?如何?
当前回答
如果你想要一个布尔结果,请使用regex.test():
console.log (/ ^ ([a-z0-9] {5}) $ / test('他们'));/ /错误 console.log (/ ^ ([a-z0-9] {5}) $ / test (' abc12 '));/ /正确的 console.log (/ ^ ([a-z0-9] {5}) $ / test(“abc123”));/ /正确的
...您可以从regexp中删除(),因为您不需要捕获。
其他回答
try
/^[a-z\d]{5,}$/.test(str)
console.log( /^[a-z\d]{5,}$/.test(“abc123”) ); console.log( /^[a-z\d]{5,}$/.test(“ab12”) );
请试试这种花:
/^[a-z0-9\_\.\-]{2,20}\@[a-z0-9\_\-]{2,20}\.[a-z]{2,9}$/.test('abc@abc.abc');
真正的
你也可以使用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
下面是一个寻找特定HTML标签的示例,因此/someregex/.test()返回一个布尔值:
if(/(span|h[0-6]|li|a)/i.test(“h3”)) alert('true');
如果您想测试整个字符串的精确匹配,请记住将^表示字符串的开始,将$表示字符串的结束。
例子:
/[a-z]+/.test('aaa111'); // true
/^[a-z]+$/.test('aaa111'); // false
如果您只想知道您的字符串是否匹配regexp,请使用/youregexp/.test(yourString)。