2014-08-27 172 views
0

我正在爲大學創建帳戶。檢查字符串是否包含數字和符號

我的問題是,如果用戶設置的密碼不包含數字和/或符號,我想返回錯誤消息,我需要幫助。

密碼需要包含大寫和小寫字母,數字和符號(!,#,%或&)。我需要錯誤消息是特定的。

有什麼建議嗎?我正在使用HTML和JS。

回答

0

我會建議使用正則表達式和運行上的每個

像這樣的檢查:

function validateStr(str) { 
    var regex = new RegExp("[A-Z]+"); // Check for uppercase first 
    if(regex.test(str) == true) { 
     regex = new RegExp("[0-9]+"); // Now we check for numbers 
     if(regex.test(str) == true) { 
      regex = new RegExp("[a-z]+"); // checking now for lowercase 
      if(regex.test(str) == true) { 
       return 1; 
      } else return 2; 
     } else return 3; 
    } else return 4; 
} 

我還沒有列入「特殊字符」的參數,因爲你必須包括那些單獨在一個正則表達式,我不建議你這樣做。 我正在努力讓它在JSFiddle上工作,所以我沒有包括一個,但只是發表評論,如果你需要我進一步解釋。

+0

我以前沒有見過使用像返回1,2,3,4 ... – 2014-08-27 08:22:20

+0

我這樣做,以便您可以使用它來指定特定的錯誤文本給用戶,如果你想。 – Matthew 2014-08-27 08:28:03

+0

這非常有幫助,謝謝。我可以繞過一下,看看我是否可以自己包含特殊字符編輯。 – 2014-08-27 08:33:03

1

雖然基於JS和regexp的解決方案是一個很好的開始(因爲在客戶端執行,所以速度更快),但我建議仔細檢查此服務器端。因爲我看到你可能正在使用eZ Publish(基於這個問題的標籤...),可以隨意重寫eZUser類(使用eZ Publish自動加載系統或使用PHP包含路徑魔術),然後破解eZUser :: validatePassword()方法來滿足您的要求。

相關問題