preg_match Muster erstellen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
adresse
ausdruck
benutzername
buchstabe
code
email
entsprechen
erlauben
funktion
http
internet
kleine buchstaben
muster
problem
sonderzeichen
url
validierung
verwenden
zahl
zeichen
-
Hallo zusammen,
ich kenne mich mit preg_match mustern nicht aus und finde auch im internet nichts. Wäre nett wenn ihr mir helfen könntet. Ich brauche ein Muster für einen Nickname, ein Passwort und eine E-Mail-Adresse
Nickname: zwischen 3 und 15 Zeichen, kann Sonderzeichen und Zahlen enthalten, muss aber nicht
Passwort: zwischen 5 und 10 Zeichen, kann Sonderzeichen und Zahlen enthalten, muss aber nicht
E-Mail-Adresse: eine normale E-Mail-Adresse
Danke
MARKUS -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das Stichwort ist Regulärer Ausdruck:
Wiki: http://tinyurl.com/354uffv
Hier auch noch ein ganz nettes Tutorial:
http://www.danielfett.de/internet-und-opensource,artikel,regulaere-ausdruecke
Bei mir checke ich username zB so:
function checkUsername(objID) { var content = $(objID).value; if(content.match("[^A-Za-z0-9]") || content == "") { return "Der Benutzername darf nur Buchstaben und Zahlen enthalten!"; } else if (!checkUsernameAvailable(content)){ return "Der Benutzername ist bereits vergeben!"; } else { return null; } }
Die Funktion checkUsername() bekommt eine ObjetkID von einem Inputfeld in einem HTML-Formular und liest dieses über $(objID).value aus (hierzu brauchst du das prototype framework damit du die $()-Funktion verwenden kannst, ansonsten einfach getElementById(id) verwenden).
Dann wird der reguläre Ausdruck verwendet, und nach Zeichen gesucht, die nicht dem Muster entsprechen. Das Muster ist [A-Za-z-0-9], soll heißen es dürfen nur große oder kleine Buchstaben und Zahlen enthalten sein. Das "^" sagt, dass hier nach Zeichen gesucht werden soll, die NICHT diesem Muster entsprechen. Wird ein solches Zeichen gefunden wird der Username verworfen.
Danach wird dann noch geprüft ob der Benutzername verfügbar ist, das is aber eine andere Geschichte.
Die Länge des Strings kannst du auch direkt imt Javascript prüfen.
Beitrag zuletzt geändert: 21.12.2010 13:05:32 von beachteam -
da du ja einfache Angaben gemacht hast, was geprüft werden soll, hier die Auflösung:
Die E-Mail ist ziemlich unsauber, reicht aber für den allgemeinen Bedarf aus, das Problem ist nähmlich, das eine E-Mail diverse Strukturen haben kann und man eigentlich nur prüfen kann, ob ein @ darin vorkommt. Aber aufgrund des Zielpublikums kann man die Validierung meistens etwas genauer spezifizieren, aber eine wirkliche Sicherheit erhält man nur, wenn man dem User eine Bestätigungsmail sendet, denn wenn diese beantwortet wird, weiß man zumindest das die Adresse valide war.Nickname: /^.{3,15}$/ Passwort: /^.{5,10}$/ E-Mail: /^.+@.+\.\w{2,4}$/
Mit freundlichen Grüßen -
Nickname: Hier lieber keine ernsthaften Sonderzeichen erlauben, damit wirst du nur Probleme bekommen. Daher: /^[-_A-Za-z0-9]{3,15}$/
Passwort: Alles erlauben ist eine gute Lösung, aber in der Länge nicht schon auf 15 Zeichen beschränken (damit schließt du ja die sicheren Passwörter aus ^^). Daher: /^.{5,}$/
Email: Hier bietet sich ein sehr einfacher und flexibler Syntaxcheck und ein anschließendes checkdnsrr an. (Und wenn dein Dienst größer wird dann eien Bestätigungsmail.) Für den Syntaxcheck würde ich die filter_var Funktion nutzen. Wenn du damit die Emails validierst wirst du recht sicher niemanden ausschleißen ;) -
Wenn du die genaue Definition einer Validen Email Adresse haben willst kannst du noch unter http://de.wikipedia.org/wiki/E-Mail-Adresse nachlesen.
Aber wie nemoinho schon gesagt hat reicht eine einfache Definition meist aus. -
Vielen dank Leute! Alles ist so wie ich es haben wollte!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage