Stephanie: Feldwert auf Zahlen prüfen

hallo zusammen

habe eine funktion welche prüft ob ein feld zahlen und evt. ein punkt enthält.

Das Script sieht folgender massen aus.

function checknumber(){
    var Fehler = 0;
 var x=document.forms[0].Offer.value
    var anum= /(^\d+$)|(^\d+.\d+$)/
    if (anum.test(x))
 window.document.forms[0].submit()
 else{
    alert("Bitte geben Sie eine gültige Zahl ein1!")
    window.document.forms[0].Offer.focus();
 return;
    }
    }

Nun sollte der Benutzer auch folgende Zahl eingeben können zb. 1'500.00.

Hatt jemand einen Tipp wie ich meine Funktion ausbauen kann.

Bin für jede Hilfe dankbar.

Gruss

Stéphanie

  1. Hi Stephanie,

    var anum= /(^\d+$)|(^\d+.\d+$)/

    Nun sollte der Benutzer auch folgende Zahl eingeben können zb. 1'500.00.

    Du musst den RegEx oben einfach anpassen. Vermutlich wäre eine Zeichenklasse das Beste, wie das geht steht hier: http://de.selfhtml.org/javascript/objekte/regexp.htm.

    Beachte aber, dass 124,58 sowie 1.345.000,98 und 1,234.30 auch durchaus gebräuchliche Schreibweisen sind.

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
    Zufällige Hinweise:
    ------------------------
    Wer die FAQ gelesen hat, ist klüger!
    ... und weiß wie man Links macht ;-)
  2. var anum= /(^\d+$)|(^\d+.\d+$)/

    Kenn mich mit JavaScript-RegExps nicht so gut aus, aber in Perl ginge es vermutlich so:
    var anum = /(^\d+('\d+)?(.\d+)?$)/

    "Am Anfang(^) stehen Zahlen(\d+). Dann kann ein ' mit weiteren Zahlen kommen ('\d+), muss aber nicht(?). Danach kann ein . mit weiteren Zahlen kommen(.\d+), muss aber nicht(?). Dann ist ende($)."

    Könnte so klappen.

    Gruesse,
    Joerg

    1. Hi Jörg,

      var anum= /(^\d+$)|(^\d+.\d+$)/

      Kenn mich mit JavaScript-RegExps nicht so gut aus, aber in Perl ginge es vermutlich so:
      var anum = /(^\d+('\d+)?(.\d+)?$)/

      "Am Anfang(^) stehen Zahlen(\d+). Dann kann ein ' mit weiteren Zahlen kommen ('\d+), muss aber nicht(?). Danach kann ein . mit weiteren Zahlen kommen(.\d+), muss aber nicht(?). Dann ist ende($)."

      Vielleicht wäre statt dem ersten ? ein * besser, denn ich möchte ja auch 1'000'000 schreiben können.

      MfG, Dennis.

      --
      Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
      Zufällige Hinweise:
      ------------------------
      Den Selfcode kann man sich übrigends hier entschlüsseln lassen:
      http://www.peter.in-berlin.de/projekte/selfcode/
      1. Vielleicht wäre statt dem ersten ? ein * besser, denn ich möchte ja auch 1'000'000 schreiben können.

        Solche Zahlen kann ich mir nicht mehr vorstellen, ich kann nur 0 und 1 *g*
        Aber stimmt, du hast recht :)

        Gruesse,
        Joerg

        1. Hi Jörg,

          Solche Zahlen kann ich mir nicht mehr vorstellen, ich kann nur 0 und 1 *g*

          Immer diese Computerfanatiker ;-)

          Aber stimmt, du hast recht :)

          Das wird wohl langsam zur Gewohnheit :-P

          MfG, Dennis.

          --
          Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
          Zufällige Hinweise:
          ------------------------
          [remote-signature:http://riehle-web-modellbahn.s4.cybton.com/selfforum/signatur.php]