# Standard Prüfklassen

Zend Framework kommt mit einem Standardset von Prüfklassen, welche fertig zur Verwendung sind.

## Alnum

Gibt nur dann `TRUE` zurück wenn `$value` nur alphabetische und digitale Zeichen enthält. Dieser Prüfer enthält eine Option um auszuwählen ob Leerzeichen als gültig anzusehen sind.

Alphabetische Zeichen bedeuten Zeichen die in jeder Spache Wörter bilden. Trotzdem wird das englische Alphabet in den folgenden Sprachen für alphabethische Zeichen verwendet: Chinesisch, Japanisch, Koreanisch. Die Sprache wurde von `Zend_Locale` spezifiziert.

## Alpha

Gibt nur dann `TRUE` zurück wenn `$value` nur alphabetische Zeichen enthält. Dieser Prüfer enthält eine Option um auszuwählen ob Leerzeichen als gültig anzusehen sind.

## Between

Gibt nur dann `TRUE` zurück wenn `$value` zwischen dem minimalen und maximalen Grenzwert ist. Der Vergleich ist standardmäßig inklusive (`$value` kann gleich dem Grenzwert sein), kann aber überschrieben werden um einen strikten Vergleich dort durchzuführen wo `$value` strikt größer als das Minimum und strikt kleiner als das Maximum sein muß.

## Ccnum

Gibt nur dann `TRUE` zurück wenn `$value` dem Luhn Algorithmus (mod-10 Checksumme) für Kreditkarten Nummern folgt.

Die `Ccnum` Prüfung sollte nicht mehr eingesetzt werden. Stattdessen sollte man die `CreditCard` Prüfung verwenden. Aus Gründen der Sicherheit sollte man CreditCard statt Ccnum verwenden.

## Date

Gibt nur dann `TRUE` zurück wenn `$value` ein gültiges Datum im Format 'YYYY-MM-DD' ist. Wenn die optionale locale Option gesetzt ist, dann wird das Datum entsprechend dem gesetzten Gebietsschemas geprüft. Und wenn die optionale format Option gesetzt wird, dann wird dieses Format für die Prüfung herangezogen. Für Details über die optionalen Parametern siehe Zend_Date::isDate().

## Digits

Gibt nur dann `TRUE` zurück wenn `$value` nur digitale Zeichen enthält.

## Float

Gibt nur dann `TRUE` zurück wenn `$value` ein Fließkomma Wert ist. Seit Zend Framework 1.8 verwendet diese Prüfung auch das aktuelle Gebietsschema des Browsers, der Umgebung oder eines anwendungsweit gesetzten Gebietsschemas. Man kann natürlich die Zugriffsmethoden get/setLocale verwenden um das verwendete Gebietsschema zu verändern oder es bei der Erstellung einer Instanz dieser Prüfung angeben.

## GreaterThan

Gibt nur dann `TRUE` zurück wenn `$value` größer als die Minimale Grenze ist.

## Iban

Gibe nur dann `TRUE` zurück wenn `$value` eine gültige IBAN (Internationale Bank Account Nummer) enthält. IBAN Nummern werden gegen ein Land geprüft in dem Sie verwendet werden und durch eine Checksumme.

Es gibt zwei Wege um IBAN Nummern zu prüfen. Als ersten Weg kann man ein Gebietsschema angeben welches das Land repräsentiert. Jede angegebene IBAN Nummer wird das gegen dieses Land geprüft.

    $validator = new Zend_Validate_Iban('de_AT');
    $iban = 'AT611904300234573201';
    if ($validator->isValid($iban)) {
        // IBAN scheint gültig zu sein
    } else {
        // IBAN ist ungültig
        foreach ($validator->getMessages() as $message) {
            echo "$message\n";
        }
    }

Das sollte man tun wenn man IBAN Nummern gegen ein einzelnes Land prüfen will. Der einfachere Weg der Prüfung ist es kein Gebietsschema anzugeben wie im nächsten Beispiel gezeigt.

    $validator = new Zend_Validate_Iban();
    $iban = 'AT611904300234573201';
    if ($validator->isValid($iban)) {
        // IBAN scheint gültig zu sein
    } else {
        // IBAN ist ungültig
    }

Aber das zeigt ein großes Problem: Wenn man nur IBAN Nummern von einem einzelnen Land akzeptieren darf, zum Beispiel Frankreich, sind auch die IBAN Nummer von anderen Ländern gültig. Deshalb als Erinnerung: Wenn man IBAN Nummern gegen ein definiertes Land zu prüfen hat, sollte man ein Gebietsschema angeben. Und wenn man alle IBAN Nummern akzeptieren will unabhängig von irgendeinem Land kann der Einfachheit halber das Gebietsschema unterdrückt werden.

## Int

Gibt nur dann `TRUE` zurück wenn `$value` ein gültiger Integer ist. Seit Zend Framework 1.8 verwendet diese Prüfung auch das aktuelle Gebietsschema des Browsers, der Umgebung oder eines anwendungsweit gesetzten Gebietsschemas. Man kann natürlich die Zugriffsmethoden get/setLocale verwenden um das verwendete Gebietsschema zu verändern oder es bei der Erstellung einer Instanz dieser Prüfung angeben.

## LessThan

Gibt nur dann `TRUE` zurück wenn `$value` kleiner als die Maximale Grenze ist.

## Regex

Gibt nur dann `TRUE` zurück wenn `$value` mit einem Regular Expression Pattern geprüft werden kann.

## StringLength

Gibt nur dann `TRUE` zurück wenn die Länge des Strings von `$value` mindstens ein Minimum und nicht größer als ein Maximum ist (wenn die max Option nicht `NULL` ist). Wirft die `setMin()` Methode eine Ausnahme wenn die minimale Länge auf einen größeren Wert gesetzt wird als die maximale Länge, und die `setMax()` Methode wirft eine Ausnahme wenn die maximale Länge auf einen kleineren Wert als die minimale Länge gesetzt wird. Seit Version 1.0.2 unterstützt diese Klasse UTF-8 und andere Zeichensätze, basierend auf dem aktuellen Wert von iconv.internal_encoding. Wenn man ein anderes Encoding benötigt kann man es mit den Zugriffsmethoden getEncoding und setEncoding setzen.