• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

String ueberpruefen

Status
Für weitere Antworten geschlossen.

Mad Dog

Mitglied
hey Leute

hab ne kurze frage!
wie heisst der befehl mit dem ich..
... pruefen kann ob nur bestimmt buchstaben/symbole in einem string sind? (zb nur a-z, A-Z, 0-9,)
... die laenge eines stirngs?

das ganz ist fuer ein formular das von php auf diese kriterien ueberprueft werden soll.
vielen dank fuer eure hilfe.
 
ich versteh das icht ganz.

bei preg_macht($muster, $sting, $matches) prueft der $sting nach dem $muster und speichert das ganze in $machtes.

aber wenn $sting zum bei spiel ein Username ist und der soll nur A-Z,a-z und 0-9 enthalten, wie sieht dann die variable $muster aus?

$muster = '/[a-z]|[A-Z]|[0-9]/'

so was in der art?
 
die beste methode währe hier wohl soetwas

PHP:
$text = 'Hallo du ich hab hier ein paar tolle sonderzeichen für dich ... :-D (/%!(§(/"%()&$';
// prüfen ob nur legale zeichen verwendet werden
if(preg_match("/^[a-z0-9]+$/i", $text)) {
    echo "Der text besteht nur aus A-Z, a-z und 0-9<br />\r\n";
}

// alle illegalen zeichen entfernen ^^
echo preg_replace('/[^a-z0-9]/i', '', $text);
 
Hi,
bei der zweiten Variante mit replace werden die Zeichen entfernt, d.h. aus dem Benutzername "Max Großmann" wird "MaxGromann". Und das ist natürlich nicht ideal.
Besser ist die erste Variante. So wird der Benutzer auch gleich darauf hingewiesen.

Übrigens kann bei Servern mit entsprechender Einstellung unter \w auch das ä/ö/ü/ß verborgen sein. Ausprobieren hilft hier.

Gruß :)
 
ja man kann ausschalten das äöü und ß auch matchen dann müsste man allerdings die locale auf en_EN oder so setzen und das ist ja nicht der sinn der angelegenheit. ;)

zudem macht es bei "Max Großmann" keinen unterschied welche der funktionen man verwendet denn sie machen beide das gleiche, also würde preg_match auch false zurückgeben. das mit dem leerzeichen kann man allerdings ganz leicht ändern und zwar so

Code:
/^[a-z0-9]+$/i <- ohne leerzeichen
/^[a-z0-9 ]+$/i <- mit leerzeichen
/^[a-z0-9\s]+$/i <- mit unsichtbaren zeichen, wie z.b. leerzeichen oder tab oder \r
... und so weiter ^^

sag mir einfach ob du prüfen willst ob illegale zeichen verwendet werden oder ob dir das egal ist du die illegalen zeichen aber entfernen willst und was genau du matchen willst dann kann ich dir einen schönen regulären ausdruck basteln und erklären. ;)
 
okay danke fuer die hilfe :-D
optimal waere wenn diese sachen ERLAUBT waeren:

... a-z sowie A-Z
... 0-9
... () und []
... _
... . <- also ein punkt :-D

der rest soll raus. also keine leertasten, oder fragezeichen oder ausrufezeichen etc
 
Status
Für weitere Antworten geschlossen.

Neueste Beiträge

Zurück
Oben