nur eine 0 vor Dezimalzeichen in Inputfeld erlauben

gianfranco0104

Erfahrenes Mitglied
Habe hier eine kleine Funktion, die die Eingabe eines Inputs live überwacht:

Javascript:
function nurZahlen(el) {
  var val  = el.value.replace(/[^\.^,\d]/g, '') ; //Nur Zahlen und Dez-Zeichen
  val       = val.replace(/[,]/g, '.') ; // "," ersetzen zu "."
  // Nur ein Dez-Zeichen erlauben
  if(val.split('.').length>2)
         val =val.replace(/\.+$/,"");
  // Nur eine 0 vor Dez-Zeichen erlauben
  if(val.split('0').length>2)
         val =val.replace(/0/,""); 
 
  el.value = val ;
}

Es werden keine Buchstaben oder sonstige Zeichen erlaubt, lediglich "." und Zahlen. das "," wird zu ":" und nur EIN "." darf in der Zahl vorhanden sein.
Das Klappt soweit ganz gut.
Was aber noch zugelassen wird sind mehr als eine "0", das soll nur hinter dem "." erlaubt sein. solange kein . gesetzt wurde muss das unterbunden werden.

Ich dachte ich kann es wie mit dem "." genauso machen:
Javascript:
// Nur eine 0 vor Dez-Zeichen erlauben

  if(val.split('0').length>2)

         val =val.replace(/0/,"");

keine Reaktion. Was mache ich falsch?
 
Hi,

vielleicht hilft dir folgendes Konstrukt weiter:
Javascript:
"000.815".replace(/^([0]{2,})/g, "0")

Ciao
Quaese
 
Hi und danke erstmal für die Antwort.
Wenn ich statt deiner Beispielzahl val.replace... Nutze passiert leider nichts. Auch wenn ich den Wert übergebe, wird nichts entnommen.
 

Neue Beiträge

Zurück