You are not logged in.

  • Login

1

Sunday, May 8th 2011, 9:33pm

JavaScript nur Zahlen erlauben

Hallo zusammen,

ich brauche eure Hilfe:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script language="javascript">
function validateEmail(str) {
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	return filter.test(str);
}

function check() {
	if (document.bewerbung.vorname.value == "") alert("Fehler: Es fehlt der Vorname!");
	else if (document.bewerbung.nachname.value == "") alert("Fehler: Es fehlt der Nachname!");
	else if (!validateEmail(document.bewerbung.email.value)) alert("Fehler: Es fehlt die E-Mail-Adresse bzw. die E-Mail-Adresse ist ungültig!");
	else if (document.bewerbung.zahlen.value == "") alert("Fehler: Es fehlt die Matrikelnummer!");
	else {document.bewerbung.submit();}
}
</script>

Source code

1
<input type="text" name="zahlen" maxlength="7" class="textField" />


Ich möchte ebenso wie bei Email eine Überprüfung per Javascript machen, dass im Inputfeld "Zahlen" siehe 2. Code oben eine 6 oder 7 stellige Zahl eingegeben werden muss, ansonsten soll das Alert Fenster aufgehen. Hierzu sollte ebenso eine Funktion für aufgerufen werden, die wie bei der Emailadresse überprüft, ob eine gültige Zeichenkomibination (in dem Fall nur die Zahlen von 0-9 mit 6 oder 7 Stellen) eingegeben wurde.

Leider komme ich überhaupt nicht drauf wie ich das bewerkstelligen soll.

Kann mir vielleicht jemand weiterhelfen?

Danke!

VG sinus

2

Monday, May 9th 2011, 5:19pm

2 Möglichkeiten:
1. Du überprüfst bei jedem Tastendruck (keydown oder keypress), ob eine Zahl enthalten ist, und wehrst es ggf. über event.preventDefault() ab.
2. Du überprüfst beim Abschicken, ob nur zahlen enthalten sind, wandelst es ggf. um oder verhinderst das Abschicken und zeigst ne Fehlermeldung.

Überprüfen per if() oder per ASCII-Code ;).

3

Monday, May 9th 2011, 10:37pm

hm ich hab jetzt mal versucht das ganze im Stil zu machen, wie bei der Mailüberprüfung:

function validateEmail(str) {
var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
return filter.test(str);
}

allerdings bin ich überhaupt nicht weitergekommen. Hat mir vielleicht jemadn einen Tipp?

Danke!

4

Tuesday, May 10th 2011, 4:14pm

Ich kenne mich mit regex überhaupt nicht aus, schätze aber, er müsste so lauten:

/[0-9]+/

Wenn da der test "true" ergibt, sind Zahlen enthalten.

5

Tuesday, May 10th 2011, 4:42pm

/[0-9]+/

[Klugscheiß]
Dafür gibt es /\d+/
[/Klugscheiß]

6

Tuesday, May 10th 2011, 6:56pm

/[0-9]+/

[Klugscheiß]
Dafür gibt es /\d+/
[/Klugscheiß]



vielen dank, so funktionierts!

8)

Social bookmarks