JavaScript mot de Code 46 est DEL de la touche de Fonction ou (.) signe de période?

Im écrit un peu de logique en JavaScript à l'aide de jquery, où je dois vérifier l'entrée de contenu à l'encontre d'une expression régulière pattern ex:

"^[a-zA-Z0-9_]*$"  //Alpha-numeric and _

La logique est presque terminé, j'ai juste un petit problème de filtrage de la touche de fonction DEL,
ma logique, qui va comme ceci:

var FunctionsKey = new Array(8, 9, 13, 16, 35, 36, 37, 39, 46);

function keypressValidation(key) {
            if (config.regexExp != null) {
                if ($.inArray(key, FunctionsKey) != -1) {
                    return true;
                }
                else {
                    var keyChar = String.fromCharCode(key);
                    return RegexCheck(keyChar);
                }
            }
            return true;
        }

Si le mot de Code est l'une de celles dans le tableau, je la laisse passer, si je pas obtenir le char et le comparer à l'expression régulière.
Le problème, c'est: dans certains Navigateurs, le DEL et '.' (signe) ont le même Code de clé de 46.

Donc, il y a une meilleure logique de filtrer les touches de fonction ou dois-je écrire une condition pour ce cas, peut-être la suppression de 46 à partir du tableau et essayer de le convertir en char et si c'est (.) le laisser aller à la fonction Regex si pas le laisser passer?
L'autre question sera il y a plus de Clé partagée Codes dans certains navigateurs?

EDIT: Ma solution suggérée ne fonctionnent pas parce qu'il n'a pas d'importance qui touche l'utilisateur pressé (DEL ou la période) je reçois toujours des (.) en tant que CHAR au moins sur OPERA et FF =(.

OriginalL'auteur JOBG | 2010-05-18