Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/11/2006, 09h12   #1
Membre à l'essai
 
Inscription : avril 2005
Messages : 71
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 71
Points : 23
Points : 23
Par défaut validation avec preg_match

Actuelement j'utilise la fonction preg_match pour valider les informations envoyé par l'utilisateur mais j'ai des difficulté avec les caractère accentué...

J'ai besoin d'une fonction plus efficace ou la facon d'ajouter ces caractères à ma validation avec preg_match

cette fonction valide que mon nom commance par une lettre et contient bien juste des lettres des - des ' et des espace
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
function fxValidNom($Nom) {
	$Retour = 1;
 
	if (!empty($Nom)){
 
		$pattern = '/^([a-z][a-z-\' ]*[a-z-\' ][a-z\'])$/ix';
 
		if(!preg_match ($pattern, $Nom)){
 
			$Retour = 2;
		}
	}else{
		$Retour = 0;	
	}
	return $Retour;
}
j'ai esseyé d'ajouter les caractère accentué mais sa me donne des erreurs...
G_Kill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2006, 09h30   #2
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
j'ai cherché pas mal de trucs pour gérér les accents récemment, et cette solution pourra peut etre te convenir.

Il s'agirait en fait, dans ton cas, de convertir d'abord la chaine accentuée en chaine non accentuée (grace a la methode en lien) puis de faire ta preg de validation sans accent. Je trouve cette solution assez élégante dans la mesure ou elle évite de lister tout les accents.

Un ajout a faire a la fonction toutefois : il faut ajouter "|grave" a la liste des entitées html a gerer (pour les è et à )

Edit : je te conseille aussi de spécifier réellement ce que tu attend de preg_match avec : preg_match(...) === 0 ou preg_match(...) === FALSE qui dans l'état actuel de ton code donnera le meme résultat...
(!FALSE) et (!0) étant équivalent. Dans le cas ou preg_match renvoi FALSE, c'est qu'une erreur s'est produite, ce n'est pas la meme chose qu'un preg_match qui renvoi 0
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2006, 00h45   #3
Membre à l'essai
 
Inscription : avril 2005
Messages : 71
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 71
Points : 23
Points : 23
Merci pour le conseil, mon problème est résolu
G_Kill est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h58.


 
 
 
 
Partenaires

Hébergement Web