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

Gültige Zeichen für Input festlegen

Tomm

Mitglied
Hallo,

wie kann ich die gültigen Zeichen für ein Input-Feld festlegen?
Ich weiß nicht, was ich in preg_match reinschreiben muß.
Der Username, den man eingibt soll zwischen 3-30 Zeichen haben und darf keine Leerzeichen , nur Zahlen 0-9 und große und kleine Buchstaben a-z , A-Z enthalten

Noch eine Frage, ich will nicht extra einen Thread aufmachen.
Entfernt trim alle Leerzeichen im String , oder nur am Anfang und Ende ?

Gruß

Tomm
 
googlen, ich habs auch net gewusst ^^

PHP:
<?php
$string = preg_match("/([a-z][0-9][.-_])/i", $string);
?>

auf 30 zeichen minimieren kann ich allerdings auch net...

Nils aka XraYSoLo
 
damit meinte ich, dass ich diesen schnippsel da auch nicht aus dem kopf sondern aus google hatte ;-).

Nils aka XraYSoLo
 
längen kannst du mit strlen() bestimmen. das ganze in eine abfrage, dann sollte es tun:

PHP:
<?php
if(strlen($_POST['field']) < 3)
   {
   echo 'mindestens drei zeichen eingeben.';
   }
      elseif(strlen($_POST['field']) > 30)
         {
         echo 'maximal 30 zeichen eingeben.';
         }
            else
               {
               //abschicken
               }
?>

Nils aka XraYSoLo
 
Moin,

PHP:
preg_match("/^[\w\-\.]{3,30}$/i", $string)

Quakenet/#php Tutorial - de - Reguläre Ausdrücke

\w ist eine vordefinierte Zeichenklasse und entspricht im Allgemeinen [0-9a-zA-Z_] (allerdings abhängig von der lokalen Einstellung PHP: setlocale - Manual )

Ja , Danke

Ich habs so gemacht, jetzt gehts, ist das kompliziert :?

PHP:
if (!preg_match("/^[0-9a-zA-Z]{3,30}$/", $name))

Noch ne Frage, wenn ich den Unterstrich _ noch zulassen will, schreib ich den einfach zwischen die Klammern ?
 
um maximal 30 zeichen zuzulassen, kann man das feld mit maxlength beschränken.

Code:
<input name="textfeld" type="text" size="30" maxlength="30">
 
Noch ne Frage, wenn ich den Unterstrich _ noch zulassen will, schreib ich den einfach zwischen die Klammern ?
Ja, einfach zur Klasse hinzufügen:
Code:
[0-9a-zA-Z_]

Wenn du den i - Modifikator setzt, kannst du dir auch die Angabe der Großbuchstaben sparen:
Code:
/^[0-9a-z_]{3,30}$/i

Einen netten Regexp Tester findest du z.B. hier : http://www.regex-tester.de/regex.html Dort sind auch sämtliche Modifikatoren mit einem Satz erklärt!
 
Zurück
Oben