<?php declare(strict_types=1); namespace openvk\Web\Util; use Chandler\Patterns\TSimpleSingleton; class Validator { use TSimpleSingleton; public function emailValid(string $email): bool { if (empty($email)) { return false; } $email = trim($email); [$user, $domain] = explode("@", $email); if (is_null($domain)) { return false; } if (iconv_strlen($user) > 64) { return false; } $domain = idn_to_ascii($domain) . "."; return checkdnsrr($domain, "MX"); } public function telegramValid(string $telegram): bool { return (bool) preg_match("/^(?:t.me\/|@)?([a-zA-Z0-9_]{0,32})$/", $telegram); } public function passwordStrong(string $password): bool { return (bool) preg_match("/^(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8,}$/", $password); } }