2016-11-30 76 views
1

该语言是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 
     } 
} 
+0

是的,我尝试了很多东西 –

回答

1

您可以使用正则表达式:

我把它从这里:Regex for Password

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

我使用这个正则表达式:

最少3个字符的至少1字母表,1号和一个特殊字符:

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

此正则表达式将执行这些规则:??

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

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

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

的3个字符(?=。[$ @ $!%#?&])[A-ZA-Z \ d $ @ $最小长度%! *#+ =()\ ^? &] {3}包含空格

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

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

+0

这是完美的,谢谢 –

+0

@ michael-drum 2感叹号是为了函数总是返回布尔值 - 看看这个http://stackoverflow.com/questions/784929/what-is-the-not-not-operator-in-javascript – sidanmor

+0

你只是吹了我的脑海。谢谢。 –

相关问题