2011-12-02 37 views
0

我試着做一個函數來檢查特殊字符,例如!@#$%^ & *〜當我輸入密碼。我一直在使用正則表達式來檢查其他所有內容,但是有誰知道我可以如何創建它,以便函數至少檢查這些特殊字符之一的密碼?在JavaScript中檢查特殊字符的表單。

這是我有:

function validateEmail(email) 
{ 
    var emailPattern = /^[a-zA-Z0-9._-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,3}$/; 
    return emailPattern.test(email); 
} 

function validatePassword(password) 
{ 
    var passwordPattern = /(?=.*\d)(?=.*[a-z])(?=.*[A-Z])./; 
    return passwordPattern.test(password) 
} 

function validate() 
{ 
    var email = user.email.value; 
    if(validateEmail(user.email.value)) 
    user.validEmail.value = "OK"; 
    else 
     user.validEmail.value = "X"; 
    if(validatePassword(user.password.value)) 
     user.validPassword.value = "OK"; 
    else 
     user.validPassword.value = "X"; 
} 
+0

這可能不完全是你的問題的答案,但我會建議不檢查這一點。如果用戶希望他的密碼是「!@#$%^&*〜」 - 爲什麼不呢? – Alexis

回答

1

您可以\W匹配任何非(字母,數字和下劃線)字符。

所以來檢查密碼,如果有任何特殊的字符,你可以只是簡單地使用:

if (password.match(/\W/)) { 
    alert('you have at least one special character'); 
} 

使用它在你的功能,您可以用替換整個正則表達式:

var passwordPattern = /^[\w\W]*\W[\w\W]*$/; 

即會如果字符串至少有一個特殊字符,則返回true。

+0

在我的正則表達式中,如果我希望它成爲其中的一部分,而不使用if語句方法,那麼我會在其中包含/ W? – user1054873

+0

@ user1054873檢查更新 – Teneff