Attenzione che hai applicato una negazione sbagliata.
Per le lettere puoi usare:
match(/[^a-zA-Z]/)
oppure
!match(/^[a-zA-Z]*$/)
mentre per i numeri:
match(/[^\d]/) o match(/[^0-9]/)
oppure
!match(/^[\d]*$/) o !match(/^[0-9]*$/)
Per qualcosa di piu` intelligente, pensavo a qualcosa che togliesse solo i caratteri non accettati:
onkeyup="this.value = this.value.replace(/[^a-zA-Z]/g, '');"
Se ancora non funziona, posta la tua implementazione.

Rispondi quotando