Natascha: String auf Zahlen prüfen

Hallo zusammen,

wie kann ich prüfen, ob ein String nur aus Zahlen besteht?

$string1 = "3158";
$string2 = "sdf462";

Wie mache ich das?

if($string1 == NUR ZAHLEN)
{
echo "Nur Zahlen";
}
else
{
echo "Fehler";
}

Danke für Eure Hilfe,
Natascha

  1. Mahlzeit,

    versuch mit

    if($string1 == intval($string1))

    solte funktionieren....

    weiss aber nicht ob das auch mit "sdf366" funst oder ob die zahlen am anfang stehen müssen.....

    cu

    Hallo zusammen,

    wie kann ich prüfen, ob ein String nur aus Zahlen besteht?

    $string1 = "3158";
    $string2 = "sdf462";

    Wie mache ich das?

    if($string1 == NUR ZAHLEN)
    {
    echo "Nur Zahlen";
    }
    else
    {
    echo "Fehler";
    }

    Danke für Eure Hilfe,
    Natascha

    1. Hallo

      if($string1 == intval($string1))

      weiss aber nicht ob das auch mit "sdf366" funst oder ob die zahlen am anfang stehen müssen.....

      Das wird so nicht funktionieren, denn mit intval() wird aus "sdf366" "366".

      Wie mache ich das?

      if($string1 == NUR ZAHLEN)
      {
      echo "Nur Zahlen";
      }
      else
      {
      echo "Fehler";
      }

      Du kannst das mit einem regulären Ausdruck oder mit is_integer() prüfen.
      In deinem Fall ($string1 = "3158";) ist $string1 jedoch nur ein String
      (wegen der Anführungszeichen), deshalb wird is_integer() nicht funktionieren.
      Ohne Anführungszeichen ($string1 = 3158;) würde es gehen.
      http://www.php.net/manual/de/function.is-integer.php für is_integer()
      http://www.php.net/manual/de/ref.variables.php zur Prüfung und Umwandlung von Typen

      Mit einem regulären Ausdruck könntest du prüfen, ob ausschließlich Ziffern
      vorhanden sind, was bedeutet, daß $string1 eine Ganzzahl, also integer ist.
      Beispiel: preg_match("/[1]{4,5}$/",$string1)
      [0-9] sagt, daß nur Ziffern enthalten sein dürfen, {4,5} sagt, daß $string1
      entweder aus vier oder fünf Zeichen (Ziffern) bestehen darf. Vielleicht
      muß der letztere Teil geändert werden. {1,} würde bedeuten, daß mindestens
      ein Zeichen enthalten sein muß.
      http://selfhtml.teamone.de/cgiperl/sprache/regexpr.htm Allgemein zu reg. Ausdrücken
      http://selfhtml.teamone.de/cgiperl/sprache/regexpr.htm#zeichen spezielle
      Beispiele für Abfragen nach Zeichen

      Tschö, Auge

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

      1. 0-9 ↩︎

      1. hi,

        if($string1 == intval($string1))
        weiss aber nicht ob das auch mit "sdf366" funst oder ob die zahlen am anfang stehen müssen.....
        Das wird so nicht funktionieren, denn mit intval() wird aus "sdf366" "366".

        zumindest die frage, ob "sdf366" nur zahlen beinhaltet, lässt sich also mit dieser abfrage schon klären.

        gruss,
        wahsaga

        1. Hallo

          if($string1 == intval($string1))
          weiss aber nicht ob das auch mit "sdf366" funst oder ob die zahlen am anfang stehen müssen.....
          Das wird so nicht funktionieren, denn mit intval() wird aus "sdf366" "366".
          zumindest die frage, ob "sdf366" nur zahlen beinhaltet, lässt sich also mit dieser abfrage schon klären.

          Wenn ich es richtig verstehe, läßt sich eher überprüfen, ob überhaupt
          Ziffern enthalten sind. intval() wandelt ja den Inhalt einer Variable
          in eine Integerzahl um. Also sollte mindestens eine Ziffer enthalten sein.
          Falls nicht, sollte "false" oder "0"(?) zurückgegeben werden.

          Tschö, Auge

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

            Wenn ich es richtig verstehe, läßt sich eher überprüfen, ob überhaupt
            Ziffern enthalten sind. intval() wandelt ja den Inhalt einer Variable
            in eine Integerzahl um. Also sollte mindestens eine Ziffer enthalten sein.
            Falls nicht, sollte "false" oder "0"(?) zurückgegeben werden.

            ja eben - und wenn du dieses dann mit dem original-string vergleichst (type cast mach JS ja automatisch), dann kommt da nur dann true heraus, wenn der originalstring nur aus ziffern bestand.

            ausnahme, die das verfahren auch unsicher macht: bei strings mit einer null am anfang, bekommen wir ein problem ...

            gruss,
            wahsaga

  2. Hallo,

    wie kann ich prüfen, ob ein String nur aus Zahlen besteht?

    $string1 = "3158";
    $string2 = "sdf462";

    Wie mache ich das?

    if($string1 == NUR ZAHLEN)
    {
    echo "Nur Zahlen";
    }
    else
    {
    echo "Fehler";
    }

    String in ganze Zahl umwandeln und das Ergebnis als neuen String mit dem Original vergleichen

    <?php

    $string1 = "3158";

    if(strval(intval($string1)) == $string1)
    {
      echo "Nur Zahlen";
    }
    else
    {
      echo "Fehler";
    }

    ?>

    MfG, Thomas