2016-11-30 124 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

你只是吹了我的腦海。謝謝。 –

相關問題