私は4つの主要な分類のうちの3つを必要とするパスワードポリシーのパスワードチェッカーを作成しています。私が問題を抱えているのは、特殊文字の一致です。すべての特殊文字のPreg_match、パスワードチェック
は、ここで私はこれまで持っているものです。
private function PasswordRequirements($ComplexityCount) {
$Count = 0;
if(preg_match("/\d/", $this->PostedData['password']) > 0) {
$Count++;
}
if(preg_match("/[A-Z]/", $this->PostedData['password']) > 0) {
$Count++;
}
if(preg_match("/[a-z]/", $this->PostedData['password']) > 0) {
$Count++;
}
// This is where I need help
if(preg_match("/[~`[email protected]#$%^&*()_-+=\[\]{}\|\\:;\"\'<,>.]/", $this->PostedData['password']) > 0) {
$Count++;
}
if($Count >= $ComplexityCount) {
return true;
} else {
return false;
}
}
だから、基本的に、私はそれぞれの場合、数字、大文字、小文字、および特殊文字の文字列をチェックしてやっています。私たちは特別なキャラクターに何らの制限もなく、ユニコードキャラクターも必要です。この場合、\ Wは動作するのでしょうか?それとも、数字も含まれていますか?私は\ Wで素晴らしい文書を見つけることができないので、私はこの部分が不明です。
数値や文字を含まないすべての特殊文字とユニコード文字をカバーする簡単な正規表現を知っている人はいますか?
誰かがこれを使用することは自由ですが、私はこれ以上の人がこれを探していると思っています。
あなたの推測のいくつかを説明する素晴らしいページがあります:http://www.regular-expressions.info/reference.html – Marcus