3v4l.org

run code in 300+ PHP versions simultaneously
<?php // SHOULD PASS. Passes all 5.0.5 and thereafter. $passwordTestArray[] = 'Aa'; // SHOULD PASS. Passes all 5.0.5 and thereafter. $passwordTestArray[] = 'Æa'; // SHOULD PASS. Fails after 5.2.10. Passes 5.0.5 - 5.2.9 $passwordTestArray[] = 'Aæ'; // SHOULD PASS. Fails after 5.2.10. Passes 5.0.5 - 5.2.9 $passwordTestArray[] = 'Ææ'; // SHOULD FAIL because ß does not have an uppercase equiv. But it passses anyway in 5.0.5 - 5.2.9 $passwordTestArray[] = 'Aß'; // SHOULD FAIL because there is no uppercase ß. // It fails for the wrong reasons in 5.0.5 - 5.2.9 // It passes in 5.2.10 and beyond. $passwordTestArray[] = 'aß'; class PCREFail { static public function verifyComplexity($plainTextPassword) { $re = "/(?=.*[\\p{Ll}])(?=.*[\\p{Lu}]).{2,}/u"; $found = preg_match_all($re, $plainTextPassword, $matches); if ($found) { return $matches; } return $found; } } foreach ($passwordTestArray as $passwordToTest) { var_dump(PCREFail::verifyComplexity($passwordToTest)); }

preferences:
58.04 ms | 402 KiB | 5 Q