trim($value), self::ISBN => Isbn::toIsbn13($compact) ?? $compact, self::ISSN => $compact, }; } public function isValid(string $normalizedValue): bool { return match ($this) { self::TEXT => $normalizedValue !== '', self::ISBN => $normalizedValue === Isbn::toIsbn13($normalizedValue) && \strlen($normalizedValue) === 13, self::ISSN => preg_match('/^(\d{7}[\dX]|\d{13})$/', $normalizedValue) === 1, }; } }