Keinen oder nur einen Dezimalpunkt in JS erlauben

  • Themenstarter Themenstarter Faili
  • Beginndatum Beginndatum
F

Faili

Hallo,

ich habe eine Frage. Vielleicht könnt ihr mir helfen?

Ich möchte mit JS erreichen, dass ein Feld auf Dezimalpunkte untersucht wird. Erlaubt sollen entweder kein oder nur ein Dezimalpunkt sein.
Sobald in dem Feld mehr als zwei Dezimalpunkte eingetragen wurden, soll ein alert erscheinen.
Wie stelle ich das an?

Ein Gedankengang von mir:

if(document.getElementById('Feld')!=.+){
alert ('Sie haben zu viele Zeichen eingegeben!');

Allerdings ist das natürlich nicht richtig. Hat jemand einen Tipp, den er mir geben kann?
Danke im Voraus,
Faili
 
Code:
function parseFloatCheck(value) {
	var str = value;
	if (str.search(/,.+/))
  	    str = str.replace(/,/g, ".");
	if (isNaN(str)){
	    alert("check your input! \'"+str+"\' is not a number.");
		return 0;
	}
  	return parseFloat(str);
}
Die Funktion ersetzt ausserdem Kommata mit Punkt um die deutsche Schreibweise abzudecken.
 
Hallo,

@rd4eva:
Ich denke, dass eine regExp. der beste Weg ist. Im Moment stehe ich bei:

var Aussage = document.getElementById('field-test');
var Ergebnis = Aussage.search(/\W+/);
if ()
alert("Du hast zu viele Zeichen eingegeben.");

Weißt du, wie ich die if-Bedingung formulieren kann?

@Chef_De_Loup:
Ich möchte ja nicht, dass das Komma durch den Punkt ersetzt wird. Dies habe ich schon anders definiert. Ich möchte, dass geprüft wird, ob mehr als zwei zeichen, hier eben der Dezimalpunkt, vorhanden sind. Sollte das der fall sein, dann soll ein alrt erscheinen. s.o.

Hast du noch eine andere Idee?

Danke euch beiden

Bezieht sich isNaN nicht nur auf Ziffern?
 
Sorry aber wenn du meinen Link verfolgt und gelesen hättest wüsstest du das.
isNaN()
Ermittelt, ob ein zu übergebender Wert eine ungültige Zahl ist (NaN = Not a Number).
Gibt true zurück, wenn der Wert keine Zahl ist, und false, wenn es eine Zahl ist. Sowohl ganze Zahlen als auch Kommazahlen werden als gültige Zahlen anerkannt. Bei Kommazahlen muss das Dezimalzeichen ein Punkt sein.

Deswegen ist isNan() auch der RegEx Methode vorzuziehen.
 

Neue Beiträge

Zurück