Der Punkt hat den ASCII-Code 46...
Sinnvollerweise sollten auch diverse Steuertasten (0) wie Entfernen, Tab und die Pfeiltasten sowie Eingabe (13 bzw. 10) zugelassen werden, das sieht dann etwa so aus:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27: | function kc(e)
{
var keycode;
if (window.event)
keycode = window.event.keyCode;
else if (e)
keycode = e.which;
else
return true;
// Zahlen
if (47 < keycode && keycode < 58)
return true;
// Steuerzeichen
var kcok = new Array(8, 10, 13, 46, 0);
while (kcok.length > 0)
{
if (keycode == kcok.pop())
return true;
}
return false;
} |
Ich habe den Namen der Funktion gekürzt (wieder ein paar Bytes gespart.. Kleinschreibung verringert außerdem die Fehlerquote) und das Skript anständig ausgerichtet. Die Zahlen werden jetzt analog zu Deinem ersten Link geprüft, die Steuerzeichen (falls sich an der Liste etwas ändert - einfach anpassen) über eine Schleife. pop() holt sich immer das letzte Element aus dem Array und löscht dieses (verhält sich also wie ein Stack).
Die 0 steht absichtlich am Ende im Array, da sie von den Steuerzeichen am häufigsten verwendet wird und die Ausführung daher schneller beendet wird.
Das Letzte else ist überflüssig, da alle anderen Fälle die Funktion schon beendet hätten (return true).