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