Die Kombination aus `formatter`+`valid_check` kann UStIDs richtig
behandeln, die Leerzeichen enthalten. Daher muss der vorher laufende
`input_check` Leerzeichen ebenfalls ignorieren.
Weiterhin muss der `input_check` auch das gleiche Format erlauben, das
`valid_check` später auch erlaubt — bezogen auf verschiedene Formate
in verschiedenen Ländern. So enhält z.B. der `valid_check` eine
Ausnahme für die Schweiz, für die nur erforderlich ist, dass die UStID
mit `CH` beginnt. Der `input_check` hingegen hat weiterhin darauf
bestanden, dass dahinter zwischen fünf und 13 Wortzeichen kommen.
max_length => 15,
type => 'Text',
default => '',
- input_check => sub { my ($check) = @_; return ($check eq '' || $check =~ m/[A-Z]{2}\w{5,13}/) },
+ input_check => sub {
+ my ($ustid) = @_;
+ return 1 if ('' eq $ustid);
+ $ustid =~ s{\s+}{}g;
+ return ($ustid =~ m/^CH|^[A-Z]{2}\w{5,13}$/);
+ },
formatter => sub { my ($input) = @_; $input =~ s/\s//g; return $input },
valid_check => sub {
my ($ustid) = @_;