Hi,
Nicht wirklich.
Es ist unperformant, anstatt mit Zahlen zu rechnen, diese erst in Strings umzuwandeln und dann noch einen regulären Ausdruck (immer langsam!) darauf anzuwenden.
Bleib bei
if(!unikey.match(/^\d$/) && (key != 8 && key != 9 && key != 35 && key != 36 && key != 37 && key != 39 && key != 46))
Ja, da hat Gunnar natürlich recht!
Es wird sich zwar nur in einigen Millisekunden unterscheiden, und ist für diese Anwendung irrelevant, aber grundsätzlich sollte man dann lieber ein paar Zeichen mehr tippen, wenn man die Performance steigern kann.
Gruß!