39 votes

Validation du code ZIP (code postal américain)

Je pensais que les gens travailleraient ensemble sur des petits projets de code, mais je ne les vois pas, alors en voici un facile :

Code qui valide un code postal américain valide. Je sais qu'il existe des bases de données de codes postaux, mais il y a toujours des utilisations, comme les pages Web, la validation rapide, et aussi le fait que les codes postaux continuent à être émis, donc vous pourriez vouloir utiliser une validation faible.

J'ai écrit un peu sur les codes postaux dans un projet parallèle sur mon wiki/blog :

https://benc.fogbugz.com/default.asp?W24

Il y a aussi un nouveau type de code postal bizarre.

https://benc.fogbugz.com/default.asp?W42

Je peux faire le code javascript, mais il serait intéressant de voir combien de langues nous pouvons obtenir ici.

54voto

keparo Points 13747

Javascript Regex Littéral :

Codes postaux américains : /(^ \d {5}$)|(^ \d {5}- \d {4}$)/

var isValidZip = /(^) \d {5}$)|(^ \d {5}- \d {4}$)/.test("90210");

Certains pays utilisent Codes postaux ce qui ne correspond pas à ce modèle.

26voto

Andrey Fedorov Points 814
function isValidUSZip(sZip) {
   return /^\d{5}(-\d{4})?$/.test(sZip);
}

6voto

Mike Henry Points 1347

Voici une fonction JavaScript qui valide un code postal sur la base d'un code de pays. Elle permet un formatage assez libéral. Vous pourriez également ajouter des cas pour d'autres pays. Notez que le cas par défaut permet les codes postaux vides puisque tous les pays ne les utilisent pas.

function isValidPostalCode(postalCode, countryCode) {
    switch (countryCode) {
        case "US":
            postalCodeRegex = /^([0-9]{5})(?:[-\s]*([0-9]{4}))?$/;
            break;
        case "CA":
            postalCodeRegex = /^([A-Z][0-9][A-Z])\s*([0-9][A-Z][0-9])$/;
            break;
        default:
            postalCodeRegex = /^(?:[A-Z0-9]+([- ]?[A-Z0-9]+)*)?$/;
    }
    return postalCodeRegex.test(postalCode);
}

Pour info, le deuxième lien faisant référence aux codes postaux fantaisie semble être un poisson d'avril.

5voto

Mike Thompson Points 4178

Seuls 5 % du monde utilisent des codes postaux. Si vous écrivez un site Web, n'oubliez pas les 95 % restants et n'échouez pas la validation parce que l'utilisateur a tapé quelque chose qui échoue au validateur de code postal américain.

5voto

Samer Points 533

Si vous faites pour le Canada, n'oubliez pas que toutes les lettres ne sont pas valables.

Ces lettres ne sont pas valables : D, F, I, O, Q ou U. Et les lettres W et Z ne sont pas utilisées comme première lettre. Certaines personnes utilisent également un espace facultatif après le troisième caractère.

Voici une expression régulière pour le code postal canadien :

new RegExp(/^[abceghjklmnprstvxy][0-9][abceghjklmnprstvwxyz]\s?[0-9][abceghjklmnprstvwxyz][0-9]$/i)

La dernière i le rend insensible à la casse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X