2012-08-05 2 views
0

J'essaie de valider un code postal pour le Canada en utilisant des expressions régulières, mais je voudrais tester chaque caractère au moment où il est entré plutôt que d'attendre que l'utilisateur soumette le formulaire. Tous les exemples que j'ai trouvés jusqu'à présent (y compris ce one), semblent valider uniquement l'entrée entière de l'utilisateur plutôt que chaque caractère tel qu'il est entré.Valider le cade postal en utilisant Regex sur chaque caractère

C'est ce que je me sers jusqu'à présent, mais il ne fonctionne que pour toute l'entrée de l'utilisateur, et non sur chaque personnage:

function validate(myform) { 
if (myform.zip.value == "" || myform.zip.value == null || myform.zip.value == "Postal Code" || myform.zip.value.length > 7) { 
    alert("Please fill in field Postal Code. You should only enter 7 characters"); 
    myform.zip.focus(); 
    return false; 
} 
return okNumber(myform); 
} 

function okNumber(myform) { 
var regex = /^[ABCEGHJKLMNPRSTVXY]\d[A-Z] *\d[A-Z]\d$/; 
if (regex.test(myform.zip.value) == false) { 
    alert("Input Valid Postal Code"); 
    myform.zip.focus(); 
    return false; 
} 
return true; 
} 

Quelqu'un at-il des exemples de la façon de valider un code postal comme chaque caractère est saisi?

+0

Je suis désolé de ne pas vous donner une solution réelle, juste une suggestion. Dans ce cas précis où vous devez valider un code postal, si vous voulez implémenter votre propre analyseur (puisque vous allez vérifier chaque caractère de votre routine), il vaudrait mieux s'assurer que le caractère est numérique et pleine longueur == 5 chaque fois que le gestionnaire est appelé et ne permet pas de dépasser la longueur maximale attendue. Vous avez donc besoin d'aide sur le côté javascript et peut-être que vous pouvez ajouter un tag sur ce domaine. J'ai eu un tel scénario .. J'ai déjà utilisé une telle technique. Aurait besoin de trop de temps pour le trouver –

Répondre

0

Vous pouvez écrire l'expression régulière comme une série d'alternatives qui correspondent à un code postal partiel d'un caractère, de deux caractères, etc., jusqu'au code postal complet, mais je ne suis pas sûr si une regex est la bonne façon de valider un code postal de toute façon.

Questions connexes