regulärer ausdruck nur zahlen
alex
- cgi
hi,
ich versuche gerade ein query_string zu überprüfen. dieser string darf nur aus zahlen bestehen, aber des klappt nicht so ganz. es dürfen keine buchstaben und keine anderen zeichen enthalten sein.
if($query =~ /[0-9]/) {
print $query;
print "<br>";
} else {
print "Sorry, verbotene Zeichen enthalten";
}
was mache ich falsch.
if($query =~ /[0-9]/) {
print $query;
print "<br>";
} else {
print "Sorry, verbotene Zeichen enthalten";
}was mache ich falsch.
if($query =~ /^\d*$/) { print"Das sind nur Zahlen" } else { print"Nö" }
Alternativ
if($query =~ /\D/) { print"Nö" } else { print"Das sind nur Zahlen" }
gruß
ich
1000 dank, jetzt geht es
Halihallo ich
if($query =~ /^\d*$/) { print"Das sind nur Zahlen" } else { print"Nö" }
nicht ganz:
if($query =~ /^\d+$/) { print "Das sind nur Ziffern"; } else { print "Nö"; }
^ (ein kleiner aber feiner Unterschied.)
Viele Grüsse
Philipp
if($query =~ /^\d+$/) { print "Das sind nur Ziffern"; } else { print "Nö"; }
^ (ein kleiner aber feiner Unterschied.)
Hi!
Falsch! Denn es ging ja nur darum zu testen, daß keine Nicht-Digits im String sind. Es sollte aber nicht getestet werden, daß auch wirklich Zeichen präsent sind! ;P
gruß
Halihallo Paul
Falsch! Denn es ging ja nur darum zu testen, daß keine Nicht-Digits im String sind.
Zitat von alex: "dieser string darf nur aus zahlen bestehen"
Er sagt nicht, dass er aus keinen Nicht-Zahlen bestehen darf. Das ist ein Unterschied,
zumal ich eine leere Zeichenfolge nicht als Ziffer sehe.
Es sollte aber nicht getestet werden, daß auch wirklich Zeichen präsent sind! ;P
Das ist zwar korrekt, aber zumindest für mich implizit (s. Erklärung oben) :-)
Ja, ich weiss, etwas spitzfindig (gibt's dieses Wort überhaupt in Deutsch?), aber mir
war gestern 5 Minuten langweilig :-)
Viele Grüsse
Philipp
Hi Philipp,
Es sollte aber nicht getestet werden, daß auch wirklich Zeichen präsent sind! ;P
Das ist zwar korrekt, aber zumindest für mich implizit (s. Erklärung oben) :-)
aber selbst Dein regular expression stellt nicht sicher, daß eine Zahl vorliegt.
Viele Grüße
Michael
Halihallo Michael
Es sollte aber nicht getestet werden, daß auch wirklich Zeichen präsent sind! ;P
Das ist zwar korrekt, aber zumindest für mich implizit (s. Erklärung oben) :-)
aber selbst Dein regular expression stellt nicht sicher, daß eine Zahl vorliegt.
Korrekt. Er stellt sicher, dass es sich um eine natürliche Zahl grösser gleich 0 handelt.
;)
Viele Grüsse
Philipp
Hi Philipp,
aber selbst Dein regular expression stellt nicht sicher, daß eine Zahl vorliegt.
Korrekt. Er stellt sicher, dass es sich um eine natürliche Zahl grösser gleich 0 handelt.
mir ist nicht geläufig, daß natürliche Zahlen mit einer "0" beginnen dürfen.
Viele Grüße
Michael
Halihallo Michael
aber selbst Dein regular expression stellt nicht sicher, daß eine Zahl vorliegt.
Korrekt. Er stellt sicher, dass es sich um eine natürliche Zahl grösser gleich 0 handelt.
mir ist nicht geläufig, daß natürliche Zahlen mit einer "0" beginnen dürfen.
s/grösser/oder/
Wie durch ein Wort den Sinn verdreht,
eine neue Menge No entsteht. ;)
Viele Grüsse
Philipp
Hi Philipp,
Halihallo Michael
aber selbst Dein regular expression stellt nicht sicher, daß eine Zahl vorliegt.
Korrekt. Er stellt sicher, dass es sich um eine natürliche Zahl grösser gleich 0 handelt.
mir ist nicht geläufig, daß natürliche Zahlen mit einer "0" beginnen dürfen.
s/grösser/oder/
Wie durch ein Wort den Sinn verdreht,
eine neue Menge No entsteht. ;)
bitte lies mein Posting nochmal ...
Viele Grüße
Michael
Halihallo Michael
bitte lies mein Posting nochmal ...
(Mein) klassischer Fall von FastReading...
a) Dürfen die wirklich nicht mit einer 0 beginnen? - Hatte ich in der Mathe etwas
verpasst? AFAIK ist das kein Ausschlusskriterium für natürliche Zahlen, aber...
b) die 0 ist _wirklich nicht_ in der Menge der natürlichen Zahlen, deshalb habe ich dies
wohl auch aus deinem Posting gelesen (beim Überfliegen "interpoliert/zugedichtet").
Viele Grüsse
Philipp
Hi Philipp,
a) Dürfen die wirklich nicht mit einer 0 beginnen?
Gegenfrage: Wäre die Zahldarstellung eindeutig, wenn sie dürften?
Viele Grüße
Michael
Halihallo Michael
a) Dürfen die wirklich nicht mit einer 0 beginnen?
Gegenfrage: Wäre die Zahldarstellung eindeutig, wenn sie dürften?
Heureka! - Ich habs gefunden (das war doch die richtige Übersetzung davon, oder?). Der
Groschen ist gefallen :-)
Viele Grüsse
Philipp
Hi Philipp,
Heureka! - Ich habs gefunden (das war doch die richtige Übersetzung davon, oder?). Der
Groschen ist gefallen :-)
dann bleibt Dir nur noch das <I>, den regular expression für natürliche Zahlen hinzuschreiben ...
Viele Grüße
Michael
Halihallo Michael
dann bleibt Dir nur noch das <I>, den regular expression für natürliche Zahlen hinzuschreiben ...
Das <I>? - Naja, ich will mal nicht so sein:
if ($num =~ /[1]\d*$/) {
print "$num is a natural number.";
}
man beachte, dieses mal ist das Sternchen nötig. Gut so? :-)
Viele Grüsse
Philipp
1-9 ↩︎
Hi alex,
ich versuche gerade ein query_string zu überprüfen. dieser string darf nur aus zahlen bestehen,
definiere "zahlen". Positive? Negative? Ganze? (Offenbar meinst Du "Ziffern".)
es dürfen keine buchstaben und keine anderen zeichen enthalten sein.
if($query =~ /[0-9]/) {
was mache ich falsch.
Du prüfst die Existenz gültiger Zeichen, nicht aber die Nicht-Existenz ungültiger.
Außerdem sollte bei "Zahlen" die erste Ziffer möglicherweise anders behandelt werden als alle weiteren ...
Viele Grüße
Michael