Condition IF avec un preg_match
Résolu/Fermé
Slylia
Messages postés
58
Date d'inscription
jeudi 27 mai 2010
Statut
Membre
Dernière intervention
4 février 2011
-
20 déc. 2010 à 17:02
heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 - 20 déc. 2010 à 17:37
heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 - 20 déc. 2010 à 17:37
A voir également:
- Condition IF avec un preg_match
- Excel cellule couleur si condition texte - Guide
- Condition et excel - Guide
- Changer la couleur d'une cellule selon son texte - Forum Excel
- Excel reporter des données sur une autre feuille avec conditions ✓ - Forum Excel
- Excel copier une cellule si condition ✓ - Forum Excel
3 réponses
heyquem
Messages postés
759
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
29 décembre 2013
131
20 déc. 2010 à 17:10
20 déc. 2010 à 17:10
Sur "8274 Aerien 634 Aerostat 7676 Aeronautique"
la RE "/([^A-Za-z])/" va faire matcher la regex avec 'Aerien'
Pour indiquer que le match doit avoir lieu sur toute la chaîne testée, il faut dire à la regex: " tu dois matcher à partir du tout début, et tu dois aller comme ça jusqu'à la toute fin"
Soit une RE égale à ceci
"/^([^A-Za-z])\z/"
ou
"/^([^A-Za-z])\Z/" , je ne sais plus, à toi de regarder
la RE "/([^A-Za-z])/" va faire matcher la regex avec 'Aerien'
Pour indiquer que le match doit avoir lieu sur toute la chaîne testée, il faut dire à la regex: " tu dois matcher à partir du tout début, et tu dois aller comme ça jusqu'à la toute fin"
Soit une RE égale à ceci
"/^([^A-Za-z])\z/"
ou
"/^([^A-Za-z])\Z/" , je ne sais plus, à toi de regarder
Slylia
Messages postés
58
Date d'inscription
jeudi 27 mai 2010
Statut
Membre
Dernière intervention
4 février 2011
1
20 déc. 2010 à 17:17
20 déc. 2010 à 17:17
J'ai essayé les 2 synthaxes et une nouvelle ligne de la table se crée quand même.
J'ai modifié un peu mon code pour prendre en compte les valeurs nulles :
Mais ça ne fonctionne toujours pas.
J'ai modifié un peu mon code pour prendre en compte les valeurs nulles :
if (preg_match("/^([^A-Za-z])\Z/")) { echo "Le nom du laboratoire ne doit contenir que des lettres !"; include 'gestionlabo.php'; } elseif ($LAB_Nom = "") { echo "Le nom du laboratoire ne doit pas être vide !"; include 'gestionlabo.php'; } else { $req_insertLabo = "INSERT INTO laboratoire (LAB_Id, LAB_Nom) VALUES ('', '$LAB_Nom')"; $insertLabo = mysql_query($req_insertLabo, $connect) or die($req_insertLabo . " - " . mysql_error()); echo " /!\ Laboratoire ajouté /!\\" ; }
Mais ça ne fonctionne toujours pas.
heyquem
Messages postés
759
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
29 décembre 2013
131
20 déc. 2010 à 17:37
20 déc. 2010 à 17:37
Pardon, je n'ai pas fait gaffe:
il faut répéter le symbole [^A-Za-z]
Ce symbole représente UNE lettre. Disons qu'il represente ce qui doit se trouver à UNE position. Et ce quelque chose n'est pas fixé, c'est l'une des valeurs d'un ensemble, c'est à dire un des caractères définis entre [ ]
if (preg_match("/^([^A-Za-z]+)\Z/"))
En mettant un + au lieu d'une *, on s'assure qu'une chaîne vide ne serait pas acceptée.
il faut répéter le symbole [^A-Za-z]
Ce symbole représente UNE lettre. Disons qu'il represente ce qui doit se trouver à UNE position. Et ce quelque chose n'est pas fixé, c'est l'une des valeurs d'un ensemble, c'est à dire un des caractères définis entre [ ]
if (preg_match("/^([^A-Za-z]+)\Z/"))
En mettant un + au lieu d'une *, on s'assure qu'une chaîne vide ne serait pas acceptée.