Input validation mit regular expression

Input validation mit regular expression

Man viele schöne Sachen machen mit den "reguläre Ausdrücken" - English: regular expression
Da man mit diesem Thema ganze Bücher füllen könnte,
beschränke ich mich hier auf ein paar kleine und hilfreiche regular expression aus der Praxis,
die man zur Input validation in der client-site-programming einsetzen kann.

Prinzipiell könnte man das gleiche Ergebnis auch in JavaScript oder einer anderen Sprache schreiben,
nur mit reguläre Ausdrücken geht es eben viel eleganter und schlanker.

regular expression examples (Beispiele aus der Praxis):

1) die Validierung von einer Email Adressen mit reguläre Ausdrücken (regular expression)


        function EmailCheck(email){
                var regex = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
                if(!regex.test(email)) {
                        return false;
                } else {
                        return true;
                }
        }
2) Man könnte aber auch die Eingabe (den Input) auf unerwünschte Werte,
wie Leerzeichen prüfen und diese entfernen (remove spaces)

Besonders bei den Passwort Eingabe Felder (password input-fields),
sollten die Benutzer-Eingaben auf Leerzeichen validiert werden.

        <input type=\"password\" title=\"Please Enter Your Password\" size=\"8\" />

Denn oft passiert es,
dass beim Copy & Paste noch ein Leerzeichen am Ende des Passwortes ist,
welches man schnell übersieht und nicht dann nicht versteht,
...warum die Authorisierung auf der Webseite nicht funktioniert!?

Daher sollte man als Programmierer dem Webseiten-Besucher
an dieser Stelle den Besuchern das Leben leichter machen:
regular expression - remove spaces

        function trim(str){
                str = str.replace(/(^\s*)|(\s*$)/g,"");
                return str;
        }
Im nächsten regular-expression Beispiel,
geht es darum, alle Buchstaben von A bis Z; a- z und numerische Werte von 0 - 9
Und zusätzlich polnische spezial zeichen zu erlauben.
Alles andere ist ungültig, und wir mit Leer (blank) ersetzt:
        function regularValid(obj){
                obj.value.replace(/[^a-zA-Z0-9 ĄĆĘŁŃÓŚŹŻąćęłńóśźż ]/g, '')
        }
Sinnvollerweise sollte man die Input-Validierung
mit Hilfe eines Event-Attribut kombinieren und durchführen.

JQuery Libraries zur Input Validierung

Sehr hilfeiche JQuery library: jquery.alphanumeric.js
r> die ich gerne nutze, um unerwünsche Benutzereingaben zu verhindern
Aber auch einfach dem Besucher der Webseite, das Leben leichter zu machen (usability improve!).

Weil viele Webseiten den Fehler machen,
die Benutzereingaben in Formularen und Textfelder etc.
erst dann zu überprüfen, wenn der Benutzer (Besucher) "weiter" oder "speichern" Button klickt.

Das nervt und kostet den Besucher Zeit...
daher sollten Entwickler zusätzlich zur Input-validation Eigenschaften für die Formular Objekte deffinieren,
die bestimmte Werte von Vornherein verhindern, also garnicht erst zulassen.

Beispiel: Postleitzahlen in Deutschland bestehen nur aus nummerischen Werten,
...warum lässt man also alphanumerische Werte auf den meisten Webseiten zu?


        die JQuery library welche im HTML Dokument deklariert werden muss:
        jquery.alphanumeric.js

        dann die einzelnen Objekten instanzieren:
        $('#Name').alphanumeric({allow:" ,.-"});
        $('#Postleitzahl').numeric({allow:""});

Diese JQuery Library ist wirklich hilfreich und schnell implementiert.
Und die validierungen im SCRIPT auch einfach deffiniert.
Allerdings dient diese JQuery restriction eher zur Verbesserung der website-usability
schützt aber nicht wirklich vor Hackerangriffen.


Comments

No comments yet.

Add Comment

* Required information
(never displayed)
 
Bold Italic Underline Strike Superscript Subscript Code PHP Quote Line Bullet Numeric Link Email Image Video
 
Smile Sad Huh Laugh Mad Tongue Crying Grin Wink Scared Cool Sleep Blush Unsure Shocked
 
1000
What is the next number: 10, 12, 14, ..?
 
Enter answer:
Captcha
Refresh
 
Enter code:
 
Notify me of new comments via email.
 
Remember my form inputs on this computer.
 
I have read and understand the privacy policy. *
 
I have read and agree to the terms and conditions. *
 
 
Powered by Commentics