gianfranco0104
Erfahrenes Mitglied
Habe hier eine kleine Funktion, die die Eingabe eines Inputs live überwacht:
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:
keine Reaktion. Was mache ich falsch?
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?