ユーザーがパスワードを入力します。たとえば、'tomorrow1234'
。で配列に分割できることは承知していますstr_split
が、その後、各値を調べて、大文字、数字、空白などを検索したいと思います。
どうすればこれを行うことができますか?
これは、パスワードの複雑さを検証するために使用する古いスタンバイ機能です。パスワードには、大文字と小文字、および英字以外の文字が含まれている必要があります。長さのチェックは簡単で、他の場所で処理されます。
$req_regex = array(
'/[A-Z]/', //uppercase
'/[a-z]/', //lowercase
'/[^A-Za-z]/' //non-alpha
);
foreach($req_regex as $regex) {
if( !preg_match($regex, $password) ) {
return NULL;
}
}
配列とループを使用しているので、必要に応じて条件を簡単に追加/削除できます。
パスワードの強度を確認しようとしているようです。
このWebページをチェックしてください。ソリューションは特定の答えを書くのにかなり複雑ですが、正規表現を使用して、大文字、記号、数字などをチェックできます。このページには、必要に応じて変更できるいくつかの例があります。
http://www.cafewebmaster.com/check-password-strength-safety-php-and-regex
これは私が使用するものです:
(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$
1文字、1数字、1特殊文字、および少なくとも8文字の長さをチェックします。