如何检查字符串是否包含至少一个既不是数字或字母的数字,字母和字符?

时间:2016-11-30 06:47:32

标签: 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
        }
 }

1 个答案:

答案 0 :(得分:3)

您可以使用正则表达式:

我从这里开始:Regex for Password

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

我使用这个正则表达式:

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

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

此正则表达式将强制执行以下规则:

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

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

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

最少3个字符(?=。 [$ @ $!%#?&])[A-Za-z \ d $ @ $!%*#+ =() \ ^?&] {3,}包含空格

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

对于那些问自己这两个感叹号是什么的人,答案是:What is the !! (not not) operator in JavaScript?