ICQ-Nummer erkennen (am besten mit Regexp)
Johannes Bauer
- programmiertechnik
0 AndreasN0 MudGuard0 Tim Tepaße
Hallo Leute,
ich würde gerne prüfen, ob ein String eine valide ICQ-Nummer darstellt...
Im Archiv habe ich folgendes gefunden: \d{7,9}. (stellt also die Zeichenlänge dar)...
Wie bekomme ich jetzt die Bedingung, dass nur Zahlen vorhanden sind, rein?
Danke,
Johann
Hallo,
Im Archiv habe ich folgendes gefunden: \d{7,9}. (stellt also die Zeichenlänge dar)...
\D ist alles andere als Zahl
$string = "sfhfjsh";
if ($string =~ /\D/){print $string."enthält auch was anderes als nur zahlen";}
else {print $string."enthält nur zahlen";}
gruss
andreas
Hallo Andreas,
Im Archiv habe ich folgendes gefunden: \d{7,9}. (stellt also die Zeichenlänge dar)...
\D ist alles andere als Zahl
und wofür könnte dann \d stehen ;-)
Grüße,
Peter
Hi,
ich würde gerne prüfen, ob ein String eine valide ICQ-Nummer darstellt...
Im Archiv habe ich folgendes gefunden: \d{7,9}. (stellt also die Zeichenlänge dar)...
Nein. \d steht für Ziffer (digit), {7,9} für mindestens 7, maximal 9 Vorkommen des vorherigen Teilausdrucks,
Zusammen also mindestens 7 Ziffern und höchstens 9 Ziffern.
Jetzt könnten nur noch Zeichen davor und danach kommen, also noch die passenden Anker verwenden:
^ für den Stringanfang
$ für das Stringende
^\d{7,9}$
cu,
Andreas
Hallo Johannes,
ich würde gerne prüfen, ob ein String eine valide ICQ-Nummer darstellt...
Entschuldige, was bitte ist eine valide ICQ-Nummer? Es sind doch letztendlich
nur Zahlen in einem stetig anwachsenden Zahlenbereich. Du hast also nur die
Möglichkeit, herauszufinden, ob es sich bei dem eingegebenen String um eine
Zahl handelt - aber ist 102354783457237543474574 auch eine valide ICQ-Nummer?
(Was mir öfter untergekommen ist, ist auch die Schreibweise #123456789, also
mit einem führenden '#' als Kennzeichen für eine UIN. Solltest Du eventuell
in Deinem regulären Ausdruck berücksichtigen.)