Hi,
ich habe in den letzten Tagen an einer Validierungs Bibliothek in JavaScript gearbeitet. Die Bibliothek stellt diverse Methoden zum Validieren von Strings (zum Beispiel für Formulare) bereit.
Ich stelle die library hier frei zur Verfügung. Wer will kann sie sich hier downloaden:
http://iwebaholic.gidix.de/validate/validate.js
Oder auch direkt verlinken (für direkte Updates).

Über Kritik und Verbesserungsvorschläge würde ich mich freuen. (:
Noch ein paar Sachen:
- Die library übernimmt nicht alles, sondern lässt bewusst Freiraum.
- Man übergibt einer Methode einen String, die Methode liefert einen boolean zurück (true oder false)
- Zur Sicherheit sollte man immer noch einmal mit PHP validieren, falls JS deaktiviert ist!
- Sämtliche Methoden beginnen mit Validate.
Ein Beispiel:
|
Quellcode
|
1
|
Validate.notEmpty("Hallo"); // Liefert true zurück, da der String nicht leer ist.
|
Kurze Erklärung aller Methoden:
Validate.notEmpty(string): Ist der String nicht leer?
Validate.noWhitespace(string): Ist kein Whitespace vorhanden?
Validate.minLength(string, minimal): Hat der String mindestens [minimal] Zeichen?
Validate.maxLength(string, maximal): Hat der String weniger Zeichen als [maximal] ?
Validate.hasLength(string, minimal, maximal): Fasst minLength und maxLength zusammen.
Validate.minValue(string, minimal): (für Zahlen): Ist die Zahl mindestens [minimal] groß?
Validate.maxValue(string, maximal): (für Zahlen): Ist die Zahl kleiner als [maximal] ?
Validate.hasValue(string, minimal, maximal): (für Zahlen): Fasst minValue und maxValue zusammen.
Validate.email(string): Entspricht die Email dem Muster einer normalen Email? (wie: max@mustermann.de)
Validate.url(string): Entspricht die URL dem Muster einer normalen URL? (wie: www.maxmustermann.de) | http:// (oder https) und www sind optional!
Validate.numeric(string): Besteht der String nur aus einer Zahl? (nur Integeres | ganze Zahlen)
Validate.decimal(string, sprache): Besteht der String aus einer Nachkomma zahl? (Akzeptiert auch ganze Zahlen). Sprache ist standardmäßig auf "de". Wenn "us" angegben wird, wird nach Komma Zahlen mit einem Punkt zum Trennen gesucht. Sonst nach einem Komma zum Trennen.
Validate.letters(string): Besteht der String nur aus Buchstaben?
Validate.alphanumeric(string): Besteht der String nur aus Buchstaben und Ziffern? (Unterstrich ist auch deaktiviert)
Validate.phone(string): Entspricht die Telefonnummer dem normalen Muster einer Telefonnummer?
Validate.date(string, trennzeichen): Entspricht das Datum einem gültigem Datum? (z.B.: 2/7/2011). Als Trennzeichen sind "/", ".", "-" und " " möglich. Standard ist ersteres. Validate.string("02 07 2010", " ") gibt true zurück
Validate.fullDate(string): Volles Datum wie: 02. Juli 2011. Der Punkt hinter der ersten Zahl darf auch weggelassen werden.
Validate.fullDateUS(string): Volles englisches Datum wie: 02. July 2011. Der Punkt hinter der ersten Zahl darf auch hier weggelassen werden.
Validate.script(string): Enthält der string einen potenziell schädlichen HTML Code, zum Nachladen von Schadcode, wie object, script oder applet
Das waren alle Methoden. Falls jmd Verbesserungsvorschläge oder Ideen für weitere hat, bitte unten eine Antwort schreiben!
Hier ein kleines Beispiel wie die Validierung aussehen könnte:
http://jsbin.com/udedar
// Irgendwie buggen die Codes hier drinnen. Deswegen musste ich auch nochmal editieren. Wer sich den Code ansehen möchte:
http://jsbin.com/udedar/edit
Ich habe das Beispiel extra klein gehalten, und daher auf Styles oder divs für Fehlermeldungen verzichtet.
Über Feedback würde ich mich freuen! Falls es jmd. nutzt, kann er ja unten antworten.
LG
iWebaholic