Webmaster Hub: Vérifier une saisie - Webmaster Hub

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Vérifier une saisie Noter : -----

#1 L'utilisateur est hors-ligne   francoisch 

  • Groupe : Hubmaster
  • Messages : 628
  • Inscrit(e) : 05-mars 06

Posté 18 novembre 2011 - 18:34

Bonjour

Je cherche le moyen le meilleur pour vérifier un champ de saisie dans un formulaire.

L’utilisateur peut saisir dans ce champ 9 mots différents, que je connais naturellement ; par ex. : bureautique, accessoire, ….

Chacun de ces mots peut apparaître seul ou bien comporter un suffixe, par ex. : 01, 02, 07, … jusqu’à 99.

Ce qui peut faire, par ex. : bureautique01, accessoire, bureautique, accessoire06, …

Comme le suffixe n’apparait pas toujours, je ne peux pas supprimer systématiquement les deux derniers caractères pour rechercher ensuite dans la liste des 9 noms.

Faut-il d’abord rechercher 01, 02, 03 (avec array_search() ?), … et le supprimer s’il existe, pour vérifier ensuite avec la liste des 9 noms ?

A l’inverse, je ne peux pas faire un array_search() avec le mot saisi car il peut avoir, ou ne pas avoir, de suffixe.

Merci par avance de vos conseils.

Francois
0

#2 L'utilisateur est hors-ligne   yuston 

  • Voir le blog
  • Groupe : Membre+
  • Messages : 589
  • Inscrit(e) : 07-octobre 04
  • Genre:Homme
  • Localisation:Lausanne

Posté 18 novembre 2011 - 19:31

Tu peux faire un regex sur les deux derniers caractères pour vérifier si c'est un nombre ou pas.

Sinon, personnellement, pour simplifier le problème, j'aurais fait deux champs select. Le premier liste les neufs mots et le deuxième liste les nombres de 00-99.
Andersen Lau - Me retrouver sur Twitter
Pour les jeunes qui n'ont pas encore réussi le permis de conduire, faites une petite accélération (prioritairement en voiture!) sur Le-Permis.ch. A fond les pédales!
0

#3 L'utilisateur est hors-ligne   francoisch 

  • Groupe : Hubmaster
  • Messages : 628
  • Inscrit(e) : 05-mars 06

Posté 18 novembre 2011 - 21:27

Merci de ta réponse.

Comme je débarque complètement dans ce sujet, j'essaie de tester la numéricité du champ $page avec:
if(preg_match('`^[[:digit:]]{1,2}$`',$page))  $res="numerique"; else $res="pas numérique";


sans succès.

Une fois que je saurai s'il y a du numérique dans la valeur de la variable, je pourrai supprimer les deux derniers caractères et valider le reste avec les 9 mots valides.

A ton avis?

Francois

Ce message a été modifié par francoisch - 18 novembre 2011 - 21:43.

0

#4 L'utilisateur est hors-ligne   yuston 

  • Voir le blog
  • Groupe : Membre+
  • Messages : 589
  • Inscrit(e) : 07-octobre 04
  • Genre:Homme
  • Localisation:Lausanne

Posté 18 novembre 2011 - 21:54

Salut,

teste quelque chose comme :
if(preg_match('#[a-z]+[0-9]{2,2}#i',$page))  $res="numerique"; else $res="pas numérique";



Edit:
Plus simple encore, suis allé trop vite avant ^^
if(preg_match('#[0-9]{2}$#',$page))  $res="numerique"; else $res="pas numérique";


Ce message a été modifié par yuston - 18 novembre 2011 - 21:58.

Andersen Lau - Me retrouver sur Twitter
Pour les jeunes qui n'ont pas encore réussi le permis de conduire, faites une petite accélération (prioritairement en voiture!) sur Le-Permis.ch. A fond les pédales!
0

#5 L'utilisateur est hors-ligne   captain_torche 

  • Danacol / Orangina rouge
  • Voir le blog
  • Groupe : Admin
  • Messages : 6 722
  • Inscrit(e) : 08-février 06
  • Genre:Homme
  • Localisation:Savigny / Orge

Posté 18 novembre 2011 - 22:39

Tu peux aussi faire une expression régulière qui cible tout , même si c'est un peu laborieux :
$reg = '#^(bureautique|accessoire||tes|autres|mots)[0-9]{,2}$#';

Mais effectivement, le plus simple seraient deux champs select. Comme ça, pas de risque de faute de frappe.
Vous avez rêvé cette nuit ? Partagez vos rêves sur l'Onironaute !
Bijoux fantaisie
Recherche nounou
0

#6 L'utilisateur est hors-ligne   jcaron 

  • Groupe : Membre+
  • Messages : 864
  • Inscrit(e) : 15-janvier 08
  • Genre:Homme
  • Localisation:Londres

Posté 19 novembre 2011 - 01:41

C'est clair que je ne comprends pas bien la logique (un select et soit un autre select soit un champ texte séparé sembleraient en effet nettement plus appropriés), mais s'il faut vraiment tester ça, une regex du genre '/^(mot1|mot2|mot3|etc)(\d{0,2})$/' permettra de valider tout ça ET de récupérer dans $matches[1] et [2] le mot et le nombre.

Jacques.
0

#7 L'utilisateur est hors-ligne   francoisch 

  • Groupe : Hubmaster
  • Messages : 628
  • Inscrit(e) : 05-mars 06

Posté 19 novembre 2011 - 15:02

bonjour et merci de vos réponses.

J'ai finalement utilisé:
if(preg_match('#[0-9]{2}$#',$page))


suivi d'un array_search().

Ca fonctionne impeccablement, merci de votre aide qui a été déterminante.

Francois
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)