我想要使用 JavaScript (或 jQuery) 执行某些客户端验证来检查字符串是否与正则表达式匹配︰

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

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

我是个新手 JavaScript,会match()执行操作需要的东西吗?它看起来检查字符串的一部分是否匹配正则表达式不整件事。

2011-07-06 21:08:50
问题评论:

不要希望完整的匹配项,或只是是否字符串包含匹配的子字符串?

完全匹配-不匹配的子字符串。

回答:

使用regex.test() ,如果您希望只是结果为布尔值︰

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

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

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

..厎而且您移除()从您 regexp 因为你们不需要捕获的。

感谢您的时间和努力:)

这就是此人拥有这种较高的分数,以自动生成的用户名的令人惊叹。人难以置信...

使用test()方法︰

var string = "sample1";
var re = new RegExp("^([a-z0-9]{5,})$");
if (re.test(string)) {
    console.log("Valid");
} else {
    console.log("Invalid");
}

缺少右双引号在构造函数的参数。

添加缺少的双引号,谢谢 @RadkoDinev

请注意,使用RegExp版本允许将变量的值插入到正则表达式字符串。

如果只想知道您的字符串是否与 regexp 相匹配,请使用/youregexp/.test(yourString)

您可以使用 match() 以及︰

if(str.match(/^([a-z0-9]{5,})$/g)){
    alert("match!");
}

但似乎更快,因为您可以在这里阅读 test(): http://stackoverflow.com/a/10940138/1895428

下面是一个示例,寻找某些 HTML 标记,因此很显然, /someregex/.test()会返回一个布尔值︰

var str = "h3";

if( /(span|h[0-6]|li|a)/i.test(str) )
    {
        alert('true');
    }
内容来源于Stack Overflow Check whether a string matches a regex
请输入您的翻译

Check whether a string matches a regex

确认取消