public function url(string $url, ?array $schemas = null, ?string $defaultSchema = null): bool
    {
        //Add default schema if not presented
        if (!$this->hasSchema($url) && !empty($defaultSchema)) {
            $defaultSchema = $this->trimSchema($defaultSchema);
            if (!empty($defaultSchema)) {
                $url = "$defaultSchema://{$this->trimURL($url)}";
            }
        }

        if (empty($schemas)) {
            return (bool)filter_var($url, FILTER_VALIDATE_URL);
        }

        foreach ($schemas as $schema) {
            $schema = $this->trimSchema($schema);
            if (empty($schema) || !$this->containsSchema($url, $schema)) {
                continue;
            }

            return (bool)filter_var($url, FILTER_VALIDATE_URL);
        }

        return false;
    }