如何检查字符串中是否至少包含一个数字、字母和非数字或字母的字符?

Mic*_*rum 4 javascript regex string numbers letter

语言是javascript。

将通过的字符串:

JavaScript1*

Pu54 325

()9c

无法通过的字符串:

654fff

%^(dFE

我尝试了以下方法:

var matches = password.match(/\d+/g);
if(matches != null)
 {
        //password contains a number
        //check to see if string contains a letter
        if(password.match(/[a-z]/i))
        {
            //string contains a letter and a number
        }
 }
Run Code Online (Sandbox Code Playgroud)

sid*_*mor 5

您可以使用正则表达式:

我从这里获取的:Regex for Password

var checkPassword = function(password){
    return !!password.match(/^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%* #+=\(\)\^?&])[A-Za-z\d$@$!%* #+=\(\)\^?&]{3,}$/);
};
Run Code Online (Sandbox Code Playgroud)

我使用这个正则表达式:

至少 3 个字符,至少 1 个字母、1 个数字和 1 个特殊字符:

"^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%* #=+\(\)\^?&])[A-Za-z\d$@$!%* #=+\(\)\^?&]{3,}$"
Run Code Online (Sandbox Code Playgroud)

该正则表达式将强制执行这些规则:

至少一个英文字母,(?=.*?[A-Za-z])

至少一位数字,(?=.*\d)

至少一个特殊字符,(?=. [$@$!% #+=()\^?&]) 如果您愿意,可以添加更多...

最小长度为 3 个字符 (?=. [$@$!% #?&])[A-Za-z\d$@$!%* #+=()\^?&]{3,} 包括空格

如果你想添加更多特殊字符,你可以将其添加到正则表达式中,就像我添加“(”一样(你需要在两个地方添加它)。

对于那些问自己这两个感叹号是什么的人来说,答案是:什么是!!JavaScript 中的(不是 not)运算符?