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 :

filtrer les lettres/chiffres


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 76
    Par défaut filtrer les lettres/chiffres
    Bonjour,

    Je souhaite écrire une fonction qui prenne en entrée une chaine de caractère quelconque, et qui, grâce à une RegExp, remplace tout ce qui n'est pas une des 26 lettres, et tout ce qui n'est pas un chiffre, par un underscore.

    Merci.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $out = preg_replace('/[^[:alnum:]]/', '_', $in);
    ?

    [:alnum:] est une classe qui représente l'ensemble des caractères alphabétiques et numériques qui est niée (négation de classe). Donc tout caractère n'appartenant pas à cet ensemble sera remplacé par un underscore.

  3. #3
    Membre éprouvé
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Par défaut
    Après, si tu veux te le faire a la main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    /**
     * Cette fonction prend une string et remplace tous les caracteres non alphabetique par _
     * @param string $word : Le mot a traiter
     * @return string : Le mot propre.
     */
    function replace_letter($word) {
      $new_word = '';
      $i = 0;
      while (isset($word[$i])) {
        if (ctype_alpha($word[$i]))
        	$new_word .= $word[$i];
        else
    	    $new_word .= '_';
        $i++;
      }
      return ($new_word);
    }
    Mais la solution du regexp me semble nettement plus élégante ^_^

  4. #4
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Mais la solution du regexp me semble nettement plus élégante ^_^
    Surtout : elle tient en une seule ligne

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 360
    Par défaut
    mais le probleme les mec c'est que vous avais pas bien lu le sujet
    lol

    ou si c'est sa qu'il veut il a pas poser la bonne question car avec la classe [:alnum:] les lettres comme é,à,ç,ñ et tous type d'accent sont accepter par cette classe hors lui ne veut que

    des 26 lettres
    Donc tous se qui a un accent il en veut pas


    il faut donc remplacer [:alnum:] par [a-zA-Z0-9] qui permet de ne garder que les 26 lettre (majuscule ou minuscule)plus tous les chiffres

Discussions similaires

  1. [XL-2007] filtrer les premières lettres d'un mot en tapant dans un combobox vba excel
    Par chombriko dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/05/2012, 13h20
  2. Réponses: 1
    Dernier message: 13/04/2005, 15h41
  3. Réponses: 3
    Dernier message: 27/07/2004, 13h01
  4. Filtrer les voyelles
    Par Babyneedle dans le forum Langage SQL
    Réponses: 9
    Dernier message: 22/12/2003, 16h12
  5. peut on filtrer les adresses IP ?
    Par travail dans le forum 4D
    Réponses: 2
    Dernier message: 04/06/2003, 15h16

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