Auge: Per Regex(?) Tabellennamen auf Gültigkeit prüfen

Beitrag lesen

Hallo

preg_match("/[1]{1}[a-zA-Z0-9@\_#$]{1,17}$/",$db_name)

Besser (da lesbarer):

preg_match("/[2][a-z0-9@_#$]{,17}$/i",$db_name)

Das deckt alle Faelle in der Beschreibung ab.

Nach kurzem rumprobieren funktionierte es nur so:

preg_match("/[3][a-z0-9@_#$]{1,17}$/i",$db_name)

Der Backslash vor dem letzten "$" (ich vermute mal "Einmal zu viel maskiert") als auch {,17} wollte nicht funktionieren. Letzteres bringt aber wieder das Problem des nicht funktionierenden "Einzeichennamens" mit sich.

Das soll mich aber nicht wirklich stören. Ich glaube kaum, dass ein Hoster die dem Kunden zur Verfügung gestellte Datenbank mit nur einem Zeichen benamst. Und die Tabellennamen, die ja dem gleichen Namensschema folgen, bekommen im Formular sprechende Namensvorschläge mit einem Präfix, um eventuellen Namenskonflikten mit bereits bestehenden Tabellen aus dem Weg zu gehen.

Vielleicht ist es sinnvoller, nur den Präfix zur freien Wahl zu stellen und den sprechenden Teil des Namens fest vorzugeben. Oder ist dies eher eine Bevormundung des Anwenders?

*btw* Was bewirkt das "i" am Ende des Ausdrucks ("$/i")? Case _I_nsensitive?

Tschö, Auge

--
Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
(Victor Hugo)

  1. a-zA-Z ↩︎

  2. a-z@_#$ ↩︎

  3. a-z@_#$ ↩︎