tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
1603
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Arndtinho Arndtinho ist offline Mitglied Platin
    Registriert seit
    Oct 2003
    Beiträge
    564
    Hallo,

    wie kann man mit Javascript prüfen, obe die eingegebene Zahl in ein Formularfeld eine Dezimalzahl ist?

    Gruß
    Arndtinho
     

  2. #2
    Avatar von con-f-use
    con-f-use con-f-use ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Oct 2004
    Ort
    München / Innsbruck
    Beiträge
    2.263
    HTML-Code:
    <form>
        <input type="text" id="zahlenfeld" />
        <input type="button" value="Prüfen" onclick="
            alert(
                document.getElementById('zahlfeld').value.match(/(\d+)|(\d+\.\d+)/)
                     ? 'Eine Zahl'
                     : 'Keine Zahl'
            );
        ">
    </form>
    Könnten noch vereinzelt Fehler drin sein, das Prinzip sollte aber klar werden. Wobei mir nicht so wirklich einleuchten will, was du genau mit "Dezimalzahl" meinst - ich für meinen Teil benutze nämlich eher selten Oktal-, Hexadezimal- oder Binärzahlen und denke deine User werden das ähnlich selten tun.
    Geändert von con-f-use (12.09.06 um 13:55 Uhr)
     
    Wäre der Satz "Ich möchte auf meinem Fisch-und-Chips-Schild einen Bindestrich zwischen die Wörter Fisch und und und und und Chips machen" nicht deutlicher, wenn Anführungszeichen vor Fisch und zwischen Fisch und und und und und und und und und und und und und und und und und und und und und Chips und auch nach Chips wären?

    | Meine Homepage: Forschung, unethische | Meine Seite mit viel verlangten Javascrits |

    -----------

    Zufriedenstellende Beiträge bitte als erledigt markieren!


  3. #3
    Arndtinho Arndtinho ist offline Mitglied Platin
    Registriert seit
    Oct 2003
    Beiträge
    564
    Die User können in einem Feld eine Preisangabe machen.
    Ich möchte prüfen, ob eine Zahl in das Feld eingeben wurde und dann noch im gewünschten Format ( 1.90, 1.000,23 oder 100.000,85 )

    Gruß
    Arndtinho
     

  4. #4
    Avatar von con-f-use
    con-f-use con-f-use ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Oct 2004
    Ort
    München / Innsbruck
    Beiträge
    2.263
    Wie ich schon sagte, das Prinzip sollte eigentlich nach meinem obigen Post klar sein. Du wirst dich aber noch mit regulären Ausdrücken auseinandersetzten müssen.

    Hilfreich könnte auch der Number-Formater auf meiner Seite zu tutorials.de sein. Einfach mal in den Quellcode schauen und dich einwenig schlau machen.

    Der entsprechende RegEx sollte ungefähr so aussehen: /^\d{1,3}(\.\d{3})*\,\d{2}$/ig
    Geändert von con-f-use (12.09.06 um 19:14 Uhr)
     
    Wäre der Satz "Ich möchte auf meinem Fisch-und-Chips-Schild einen Bindestrich zwischen die Wörter Fisch und und und und und Chips machen" nicht deutlicher, wenn Anführungszeichen vor Fisch und zwischen Fisch und und und und und und und und und und und und und und und und und und und und und Chips und auch nach Chips wären?

    | Meine Homepage: Forschung, unethische | Meine Seite mit viel verlangten Javascrits |

    -----------

    Zufriedenstellende Beiträge bitte als erledigt markieren!


  5. #5
    Arndtinho Arndtinho ist offline Mitglied Platin
    Registriert seit
    Oct 2003
    Beiträge
    564
    Erstmal Danke für den Tipp. Habe ein wenig gegoogelt und mir andere Scripte angesehen und bastel mir eine Funktion zusammen. So siehts im Moment aus:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    function checkValue() {
             
             // "Prüf"-ausdruck
             var reg = /,-{1,}|\.-{1,}|\.0{1,}/;
             
             // Nach-Komma-Stellen checken und ggf. ersetzen
             var nan_test_value = document.check.zahl.value.replace( reg, ",00" );  
             
             // Prüfen ob Vor-Komma-Stelle eine Zahl ist
             if( isNaN( parseFloat( nan_test_value ) ) ) {
                alert( "Keine Zahl" );
             }
    }
    Das klappt auch. Nun mach ich mir Gedanken, wie ich prüfen kann, ob nach dem Komma 2 Stellen vorhanden und ob diese nummerisch sind.
    Beispiel:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    Eingabe: 123,45
    Ergebnis: 'Nach-Komma' = 45 -> true;
     
    Eingabe: 123,456  
    Ergebnis: 'Nach-Komma' = 456 -> false;
     
    Eingabe: 123,bla  
    Ergebnis: 'Nach-Komma' = bla -> false;
     
    Eingabe: 123,4bla  
    Ergebnis: 'Nach-Komma' = 4bla -> false;
     
    Eingabe: 123,de  
    Ergebnis: 'Nach-Komma' = de -> false;
    Ich hoffe, ich habe es halbwegs verständlich ausgedrückt.
     

  6. #6
    Avatar von con-f-use
    con-f-use con-f-use ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Oct 2004
    Ort
    München / Innsbruck
    Beiträge
    2.263
    Sorry, aber das tut irgentwie weh. Es ist zwar lobenswert, dass du dich mit dem Thema beschäftigt hast, aber du hättest einfach nur das lesen müssen, was ich dir gegeben habe. Das Script steht schon fast komplett da. Teste einfach nur mal das in einer html-Datei und es sollte funktionieren:
    HTML-Code:
    <html><head><title>Unbekannt</title></head><body>
    <form>
        <input type="text" id="zahlenfeld" />
        <input type="button" value="Prüfen" onclick="
            alert(
                document.getElementById('zahlenfeld').value.match(/^\d{1,3}(\.\d{3})*\,\d{2}$/) 
                ? 'Eine richtigformatierte Zahl' 
                : 'Keine richtigformatierte  Zahl' 
            ); "> 
    </form>
    </body>
    Das ist mein obiges Script mit den eben geposteten RegExp. Der Testet schon automatisch, ob auch wirklich zwei Nachkommastellen drin sind usw.
    Wenn du jetzt die Links über reguläre Ausdrücke, die ich oben gepostet habe liest, weißt du auch wie und warum das Script funktioniert und kannst es gegebenfalls noch anpassen.
     
    Wäre der Satz "Ich möchte auf meinem Fisch-und-Chips-Schild einen Bindestrich zwischen die Wörter Fisch und und und und und Chips machen" nicht deutlicher, wenn Anführungszeichen vor Fisch und zwischen Fisch und und und und und und und und und und und und und und und und und und und und und Chips und auch nach Chips wären?

    | Meine Homepage: Forschung, unethische | Meine Seite mit viel verlangten Javascrits |

    -----------

    Zufriedenstellende Beiträge bitte als erledigt markieren!


  7. #7
    Arndtinho Arndtinho ist offline Mitglied Platin
    Registriert seit
    Oct 2003
    Beiträge
    564
    Sorry, dass ich noch nicht geantwortet habe und den Thread als erledigt markiert hatte.
    Habe mir Deine Sachen angeschaut und es funktioniert. Danke.
     

Ähnliche Themen

  1. Dezimalzahl teilen
    Von xxxmike im Forum PHP
    Antworten: 20
    Letzter Beitrag: 10.07.09, 12:23
  2. Dezimalzahl in Hexagesimalzahl
    Von Reinhard87 im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 05.01.08, 11:26
  3. VB 6.0 Aufrunden einer Dezimalzahl
    Von Nichtwisser im Forum Visual Basic 6.0
    Antworten: 5
    Letzter Beitrag: 12.01.06, 16:45
  4. Dezimalzahl in MySQL DB importieren
    Von exitboy im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 10.08.05, 08:51
  5. Dezimalzahl invertieren
    Von wasserflasche im Forum Visual Basic 6.0
    Antworten: 7
    Letzter Beitrag: 10.06.04, 17:22