我正在創建一個密碼驗證工具,我希望的一個要求是防止用戶在一行中有太多字母。任何字母,包括大寫字母,都不能以3次或更多次的順序重複。在PHP中檢查重複的字母
我的方法是使用for循環遍歷密碼字符串,並在其中嵌入一些使用正則表達式的檢查。我似乎無法讓邏輯工作,這可能很簡單。下面是我的(很多)失敗的嘗試中的一個來解決這個問題:
$seqLetterCounter = 0;
for($i=0; $i < strlen($password); ++$i) {
if($password{$i} == '/([a-zA-Z])/') {
$seqLetterCounter++;
}
if($seqLetterCounter > $this->maxSeqLetters){
$this->errors[6] = 'You have used too many sequential letters in your password. The maximum allowed is ' . $this->maxSeqLetters . '.';
}
if($password{$i} == '/([^a-zA-Z])/') {
$seqLetterCounter = 0;
}
}
$ password - 從表單中發佈的值。
$ maxSeqLetters - 保存由用戶定義的整數值的受保護變量。
errors [] - 一個數組,用於確定密碼是否通過了各種檢查。
任何人都有一些指針?
是一個很好的編碼器,很懶:http://www.openwall.com/passwdqc/ – hakre