From 4e06a19552c8d40cde1f1d13e9703579f8b33a90 Mon Sep 17 00:00:00 2001
From: "da@weeno.net" <>
Date: Mon, 8 Nov 2010 18:08:11 +0000
Subject: [PATCH] =?UTF-8?q?Quelques=20v=C3=A9rifications=20par=20pays?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On pourrait avoir envie de factoriser ces règles avec des tableaux
et des boucles, mais les conventions de numérotation de plein de pays
sont tordues, parfois on garde le préfixe, parfois non, parfois il
change, parfois il est optionnel, ...
---
 verifier/telephone.php | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/verifier/telephone.php b/verifier/telephone.php
index caed0f3..82a6dfb 100644
--- a/verifier/telephone.php
+++ b/verifier/telephone.php
@@ -21,10 +21,24 @@ function verifier_telephone_dist($valeur, $options=array()){
 		$options['pays'] = 'FR';
 		$tel = preg_replace('/^\+33/','0',$valeur);
 	}
+	if (preg_match("/^\+34/", $tel)) {
+		$options['pays'] = 'ES';
+		$tel = preg_replace('/^\+34/','',$valeur);
+	}
+	if (preg_match("/^\+41/", $tel)) {
+		$options['pays'] = 'CH';
+		$tel = preg_replace('/^\+41/','0',$valeur);
+	}
 
 	switch($options['pays']){
+		case 'CH':
+			if (!preg_match("/^0[1-9]{9}$/",$tel)) return $erreur;
+			break;
+		case 'ES':
+			if (!preg_match("/^[69][0-9]{8}$/",$tel)) return $erreur;
+			break;
 		case 'FR':
-			if(!preg_match("/^0[0-9]{9}$/",$tel)) return $erreur;
+			if (!preg_match("/^0[1-9][0-9]{8}$/",$tel)) return $erreur;
 		default:
 			// On interdit les 000 etc. mais je pense qu'on peut faire plus malin
 			// TODO finaliser les numéros à la con
-- 
GitLab