Je souhaite utiliser une expression rationnelle pour "forcer" un utilisateur à formater correctement un horodatage.Javascript RegExp pour autoriser uniquement certains caractères à certains endroits
En ce moment je peux limiter les entrées de sorte que l'utilisateur ne peut saisir des chiffres, un tiret ou deux points en utilisant les éléments suivants:
function allownumbers(e) {
var key = window.event ? e.keyCode : e.which;
var keychar = String.fromCharCode(key);
var reg = new RegExp("[-0-9: ]")
if (key == 8) {
keychar = String.fromCharCode(key);
}
if (key == 13) {
key = 8;
keychar = String.fromCharCode(key);
}
return reg.test(keychar);
}
Cependant, l'utilisateur peut encore saisir des données incorrectes, par exemple 0000 :: - 12354 validerait. Puis-je utiliser une expression rationnelle pour forcer l'utilisateur à entrer #### - ## - ## ## ##: ##: ## (par exemple 2010-12-15 10:57:01)?
(encore plus cool serait si elle a ajouté automatiquement les tirets, et l'espace côlons quand il a frappé au bon endroit dans la chaîne.)
Cheers,
Ben
C'est exagéré - pourquoi mettre dans une autre bibliothèque entière pour une petite tâche comme ceci? – Benubird
@Bububird: pas exagéré à mon avis; Si cela va être utilisé dans de nombreux endroits et peut-être différentes règles d'entrée, pourquoi ne pas l'utiliser? C'est une bonne solution pour un problème commun. – darioo
Parce qu'il n'y a aucune implication que plus que cette seule tâche simple est nécessaire; Pour autant que nous sachions, cela pourrait être le seul javascript sur l'ensemble du site - vous supposez qu'il a «beaucoup d'endroits» où il sera utilisé, mais ce pourrait ne pas être le cas. Sans oublier que vous n'avez pas vraiment répondu à la question. Il posait des questions sur l'utilisation d'expressions régulières; le simple fait de dire "allez utiliser une bibliothèque" est très inutile, car il ne fournit aucune information. – Benubird