Je veux empêcher les utilisateurs d'utiliser les touches de lettres sur l'entrée et j'utiliser le code suivant dans jqueryregex fonctionne pas correctement à chaque touche
var enK = /^(6[5-9])|([7-9][0-9])|(1([01][0-9]|2[0-2]))$/y;
// this regex is for event code of a-z and A-Z letters in keypress event
$(document).ready(function(){
$('input').bind('keypress',function(evt){
var evC = evt.which || evt.charCode;
if(enK.test(evC)){
event.preventDefault();
}
})
});
Test1:
clés d'entrée: abcdefg
sortie : bdf
Test2:
Touches d'entrée: aaaaaa
Sortie: aaa
Ces tests signifie que:
keypress -Premier est empêché
keypress -Deuxième correspond pas à l'expression rationnelle et pas empêché
-Troisième la pression d'une touche est empêchée
-Une pression de touche ne correspond pas à l'expression rationnelle et n'est pas empêchée
...
Le code suivant a la même valeur.
var enC = /[a-z|A-Z]/g;
$(document).ready(function(){
$('input').bind('keypress',function(evt){
var evC = evt.which || evt.charCode;
evC = String.fromCharCode(evC);
if(enC.test(evC)){
event.preventDefault();
}
})
});
Maintenant, comment dois-je résoudre ce problème? Merci.
Votre regex ne fait rien pour vérifier les lettres. Je n'ai aucune idée de ce que vous essayez de faire ici en fonction de ce que vous avez fourni. –
@SpencerWieczorek vérifie le code clé. 'a' = 97, etc. – Jorg
@Jorg Ne serait-il pas plus facile de simplement vérifier la valeur plutôt que les codes-clés? Regex n'est pas vraiment bon pour les plages de nombres. –