From ee02ca629719d0e0e804e924c1be4ca3b826f152 Mon Sep 17 00:00:00 2001 From: "kent1@arscenic.info" <> Date: Sat, 3 Nov 2012 14:30:07 +0000 Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration=20de=20la=20regexp=20pour=20l?= =?UTF-8?q?es=20codes=20postaux?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Une regexp qui devrait accepter à peut près tous les codes postaux Une liste des codes à 5 chiffres Un peu de commentaires dans tout ça On passe en version 0.1.17 --- paquet.xml | 2 +- plugin.xml | 2 +- verifier/code_postal.php | 34 ++++++++++++++++++++++++++++++++-- 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/paquet.xml b/paquet.xml index ab03432..d2355dc 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,7 +1,7 @@ <paquet prefix="verifier" categorie="outil" - version="0.1.17" + version="0.1.18" etat="test" compatibilite="[2.0.10;3.0.*]" logo="images/verifier-128.png" diff --git a/plugin.xml b/plugin.xml index 8ea4a51..5cced23 100644 --- a/plugin.xml +++ b/plugin.xml @@ -9,7 +9,7 @@ <auteur>[Les Développements Durables->http://www.ldd.fr]</auteur> <icon>images/verifier-128.png</icon> <licence>GPL v3</licence> - <version>0.1.17</version> + <version>0.1.18</version> <etat>test</etat> <description> <multi> diff --git a/verifier/code_postal.php b/verifier/code_postal.php index c9f6153..90705cf 100644 --- a/verifier/code_postal.php +++ b/verifier/code_postal.php @@ -7,7 +7,13 @@ if (!defined("_ECRIRE_INC_VERSION")) return; * Un code postal francais est compose de 5 chiffres * http://fr.wikipedia.org/wiki/Code_postal_en_France * a completer pour d'autre pays - * + * + * cf : http://fr.wikipedia.org/wiki/Codes_postaux + * + * La regexp par défaut doit valider toutes les possibilités + * -* combinaisons de chiffres et de lettres et aussi tiret + * -* notations internationales cf : http://en.wikipedia.org/wiki/List_of_postal_codes#On_the_use_of_country_codes + * * @param string $valeur * La valeur à vérifier. * @param array $options @@ -23,10 +29,34 @@ function verifier_code_postal_dist($valeur, $options=array()){ $ok = ''; switch ($options['pays']){ case 'FR': - default: if (!preg_match(",^((0[1-9])|([1-8][0-9])|(9[0-8]))[0-9]{3}$,", $valeur)) return $erreur; break; + case 'DZ':// Algérie + case 'DE':// Allemagne + case 'BY':// Bielorussie + case 'BA':// Bosnie Herzégovine + case 'HR':// Croatie + case 'ES':// Espagne + case 'FI':// Finlande + case 'GT':// Guatemala + case 'IT':// Italie + case 'LT':// Lituanie + case 'MY':// Malaisie + case 'MA':// Maroc + case 'MX':// Mexique + case 'ME':// Montenegro + case 'LK':// Sri lanka + case 'MX':// Mexique + case 'UA':// Ukraine + // 5 chiffres + if (!preg_match(",^[0-9]{5}$,", $valeur)) + return $erreur; + break; + default: + if (!preg_match('/^[A-Z]{1,2}[-|\s][0-9]{3,6}$|^[0-9]{3,6}$|^[0-9|A-Z]{2,5}[-|\s][0-9|A-Z]{2,4}$|^[A-Z]{1,2} [0-9|A-Z]{2,5}[-|\s][0-9|A-Z]{2,4}/i',$valeur)) + return $erreur; + break; } return $ok; -- GitLab