Im gewissen Logik in JavaScript mit Jquery zu schreiben, in dem ich den Eingang Inhalt gegen ein RegexMuster ex überprüfen muß:JavaScript Keycode 46 ist DEL Funktionstaste oder (.) Zeichen?
"^[a-zA-Z0-9_]*$" //Alpha-numeric and _
Die Logik ist fast fertig, ich habe nur ein kleines Problem Filterung der Funktionstaste DEL, meine Logik geht so:
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;
}
wenn die KeyCode einer von denen in der Anordnung ist, lasse ich es passieren, wenn nicht ich die Zeichen und vergleichen sie gegen die REGEX bekommen. Das Problem ist: in einigen Browsern die DEL und '.' (Periodenzeichen) haben den gleichen Schlüssel Code 46.
So gibt es eine bessere Logik, um die Funktionstasten zu filtern, oder muss ich eine Bedingung für diesen Fall schreiben, vielleicht entferne die 46 aus dem Array und versuche, es in char zu konvertieren und wenn (.) lassen Sie es auf die Regex-Funktion gehen, wenn nicht passieren lassen? Die andere Frage wird sein, gibt es mehr gemeinsame Schlüsselcodes in einigen Browsern?
EDIT: Meine vorgeschlagene Lösung nicht funktionieren, da es keine Rolle, welche Taste der Benutzer gedrückt (DEL oder Zeit) habe ich immer als CHAR zumindest auf OPERA und FF = (
Ich werde es versuchen, Thx – JOBG
Hinweis: Es gibt zwei "." Tasten auf vielen Tastaturen, probiere beide aus, (190 scheint wie eine Dezimalstelle zu sein, wenn ich mich aus toten Gehirnzellen richtig erinnere :) Du kannst eine Warnung hinzufügen(); um herauszufinden, genau –
ok, die erste, die ich bemerke ist, dass Sie Keydown anstelle von Tastendruck verwenden, und es scheint, dass es ein Diff in welchem Ereignis ich wähle, derzeit bin ich mit Tastendruck und das Ergebnis mit der Methode sind (.) = 0 (FF) - 46 (Opr), DEL = 46 auf der anderen Seite gibt Keydown (.) = 190, DEL = 46 für beide Browser, warum die Unterschiede? – JOBG