IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Tester champs remplis uniquement d'espaces


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 257
    Points : 97
    Points
    97
    Par défaut Tester champs remplis uniquement d'espaces
    Bonjour,

    Je souhaiterais éviter d'entrer des données (dans la bd) des valeurs remplis uniquement que d'espaces.

    N'ayant pas réussit à manipuler regex permettant de repérer si une variable ne contient que des espaces.
    J'ai pensé à ca:
    Le pitch :
    - exploser les espaces de la chaîne en array
    - lister l'array
    - tester si pas vide > 'ok'

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php 
      $stringabc='     ';
      $stringabc=explode(' ',$stringabc); // exploser les espaces
      $valid='no';
      foreach ($stringabc as $key => $value) { // lister
        echo 'key '.$key .' |'.$value.'|<br>'; // Voir 
        if ($value!='') {$valid='ok';} // tester si pas vide
      }
      echo $stringabc.' > '.$valid;
    ?>
    Il y a t-il plus simple ?

    On ferait pareil en javascript ?

  2. #2
    Membre actif Avatar de Trehinos
    Homme Profil pro
    Analyste développeur PHP
    Inscrit en
    Novembre 2012
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyste développeur PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2012
    Messages : 100
    Points : 232
    Points
    232
    Par défaut
    Pour obtenir ce que vous cherchez :
    trim($str) === ''=)

    En JS :
    str.trim() === ""
    Mais ça ne fait pas la différence entre un chaine vide et une chaine composée uniquement d'espaces...

    Sinon : preg_match('/^\\s+$/', $str)Dans les deux cas sont pris en compte les espaces, les tabulations et les sauts de ligne.




    Mais je vous conseillerais plutôt de faire un simple trim() sur la donnée à insérer en BDD pour insérer une chaine vide si elle est composée d'espace et une chaine trimée sinon.

    Plus d'infos : https://www.php.net/manual/fr/function.trim.php

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 257
    Points : 97
    Points
    97
    Par défaut
    Ok, Trehinos, merci

    Avec un, si pas vide.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (preg_match('/^\\s+$/', $str)!=1 && $str!='') 
    {echo 'ok';}
    else {echo 'no';}
    On ferait pareil en javascript ?

  4. #4
    Membre actif Avatar de Trehinos
    Homme Profil pro
    Analyste développeur PHP
    Inscrit en
    Novembre 2012
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyste développeur PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2012
    Messages : 100
    Points : 232
    Points
    232
    Par défaut
    Votre if serait plus simple sous la forme if(trim($str) === '') tout en faisant la même chose (vérifier que la chaîne est ou bien composée d'espaces uniquement, ou bien vide).

    En JS, c'est le même principe. Si une chaîne trimée est vide, c'est que la chaîne d'origine n'est composée que d'espaces (/sauts de ligne/tabulations) ou qu'elle est vide.
    J'ai déjà posté le code JS dans mon message précédent

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 257
    Points : 97
    Points
    97
    Par défaut
    Ok, merci Trehinos
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    if(trim($str) === '')

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Champ en saisie rempli par des espaces
    Par lomion dans le forum IHM
    Réponses: 8
    Dernier message: 13/11/2017, 13h15
  2. Réponses: 3
    Dernier message: 29/11/2011, 18h00
  3. [Champ text unique]
    Par Braq dans le forum Outils
    Réponses: 6
    Dernier message: 28/06/2005, 13h23
  4. Champs complété par des espaces
    Par DeitY dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 23/06/2005, 15h07
  5. Comment vérifier que la valeur d'un champ soit unique?
    Par le lynx dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/05/2005, 14h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo