Ankündigung

Einklappen
Keine Ankündigung bisher.

RegEx für Zahlen mit Tausendertrennpunkten

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Mir gefallen aber die HTML Fehlermeldungen nicht, die bei input type="number" geschmissen werden. Fehlermeldungen werden keine mehr geschmissen.
    ??

    funktioniert bei mir nicht.
    Funktioniert bei mir nicht ist immer eine grandiose Fehlerbeschreibung.

    Wenn bei Deinem Code etwas nicht läuft musst du das schon selbst debuggen und eingrenzen, das übernimmt niemand für Dich.

    Kommentar


    • #17
      Dann schalte sie ab oder erzeuge eigene Fehlermeldungen mit Javascript.
      Fakt ist, das die serverseitige Umwandlung von geratenen Zahlen nicht funktionieren kann.
      Das Thema hatten wir schon öfter.

      Benutzer gibt ein:
      1.234

      Ist da nun 1234 oder 1,234 ?
      Überlasse das dem Browser und mit Javascript erzeugt du deine Fehlermeldungen die du gerne hättest.
      Serverseitig muss du dann nur das für Computer übliche Format prüfen. Also mit Fliesspunkt ohne Tausendertrennzeichen. Das kommt dann so an, dass du lediglich den Wertebereich prüfen musst und dann direkt in die DB schieben kannst.

      Ausserdem noch mal der Hinweis:
      Es spielt keine Rolle ob dir was gefällt oder nicht gefällt, wichtig ist nur ob der Benutzer damit umgehen kann und alles was vom Browser kommt kennt der Benutzer, den Rest, also das was du ihm als Fehlermeldung präsentierst kennt er nicht und verlässt im schlimmsten Fall abgeschreckt die Seite.

      Kommentar


      • #18
        king-ich Und abgesehen davon gibt kein Mensch bei Eingabe einer Zahl einen Tausenderpunkt ein. Das ist ein Mittel um in der Ausgabe/Darstellung einer Zahl eine optische Unterstützung der einfacheren Lesbarkeit zu erreichen.

        Ein Dezimaltrenner ist jedoch eine syntaktische Notwendigkeit, wenn man es so nennen will. Daher sind auch die Nummernblöcke auf den Tastaturen so wie sie sind. Das hat schon alles Sinn.
        The string "()()" is not palindrom but the String "())(" is.

        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar


        • #19
          Mach das mit Javascript jetzt so :

          Code:
              function mietPreis() {
                  "use strict";
              if (!document.getElementById('preiseingabe').value.match(/^(\d+(?:[\.\,]\d{2})?)$/)) {
                  document.getElementById("input_miete").style.color = 'red';
                  document.getElementById("input_miete").innerHTML = 'Bitte eine Ganz- oder Kommazahl eingeben!';
                  document.inserieren.miete.style.borderColor = 'red';
                  document.getElementById('input_miete').scrollIntoView({behavior: "smooth" });
                  return false;
              }else{
                  document.getElementById("input_miete").style.color = 'black';
                  document.getElementById("input_miete").innerHTML = 'Kaltmiete';
          }}
          Ausgeben tu ich das dann folgender Maßen:

          PHP-Code:
          echo number_format($str_zahl2",""."); 

          Kommentar


          • #20
            Hier mal für diejenigen die das ohne Javascript haben wollen, das geht nämlich auch.

            PHP-Code:
            <?php

            if ( isset($_GET['miete']) ){
                
            var_dump($_GET['miete']);
            }


            ?>
            <!DOCTYPE html>
            <html>
            <head>
                <meta charset="UTF-8">
                <title>test</title>
                <style>
                    form p{display: none;}
                    input[type="submit"] { display: none; }
                    input[type="number"]:valid~input[type="submit"] { display: block; }
                    input[type="number"]:focus:invalid~p { display: block; }
                </style>
            </head>

            <body>
                <form lang="de-DE">
                    <label>Kaltmiete:</label>
                    <input type="number" name="miete" min="0.99" max="999999.99" step="0.01" required>
                    <p>Bitte Ganzahl oder Kommazahl eingeben.</p>
                    <input type="submit" value="absenden">
                </form>    
            </body>

            </html>

            Kommentar


            • #21
              Der ist gut

              Kommentar

              Lädt...
              X