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 :

Suppression des caractères spéciaux et nombres [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut Suppression des caractères spéciaux et nombres
    bonsoir à tous,

    j'ai un probleme avec une regex je voudrais pouvoir enlever tous les caractère spéciaux (sauf les lettres accent) ainsi que les nombres donc pour cela j'ai ecrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "/[^\d[[:punct:]][[:print:]][[:cntrl:]]]*/"
    et sa ne fonctionne pas il me retourne vide, pour mes testes j'ai utilisé 'DUPONT' et 'Kévin'.
    Pourriez-vous m'aider s'il vous plait ?

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 285
    Points : 11 740
    Points
    11 740
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $texte = preg_replace('/[^[:alpha:]]+/', '', $texte)
    Pour garder les lettre accentuées, il faut utiliser un setlocale avant.

  3. #3
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut
    Bonjour,

    merci de votre intérêt, je voulais valoir un peut plus en détaille le rôle de la fonction setlocale car je n'ai pas très bien compris ce qu'elle faisait.

    merci d'avance.

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 285
    Points : 11 740
    Points
    11 740
    Par défaut
    La "locale" est un ensemble de paramétrages qu'on pourrait qualifier de géo-linguistiques : quel est le séparateur décimal ? quels sont les noms des mois et des jours de la semaine ? quel est le premier jour de la semaine ? quelles sont les équivalences entre caractères (par exemple, en allemand, ö = oe mais pas en français) ? etc.
    J'ai du mal à te répondre plus précisément, car je ne l'ai jamais utilisé de locale en PHP.

  5. #5
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut
    merci pour ta réponse j'ai nettement mieux compris cette fonction, quelle est son utilité.

    Merci encore

    par conte je voudrais pouvoir l'utiliser c'est regex pour faire un contrôle sur des champs d'un formulaire et donc la je ne peux pas utilisé la fonction setlocale a ce moment la car j'utilise en framework qui teste les champs automatiquement et donc je ne peux pas le toucher pour rajouter setlocale dedans.

    Comment puis-je faire ?

  6. #6
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 285
    Points : 11 740
    Points
    11 740
    Par défaut
    Soit tu mets un setlocale au tout début de ta page, avant l'appel au framework. Sinon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $texte = preg_replace('/[^[:alpha:]àâäéèêëîî...]+/i', '', $texte)

  7. #7
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut
    Merci pour ton aide mon problème est résolu

    donc j'ai fait exactement se que tu as marqué au dessus sauf que j'ai enlevé l'accent circonflexe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace('/[[:alpha:]àâäéèêëîî]+/', '', $texte)

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/12/2014, 23h27
  2. Suppression des caractères spéciaux
    Par thibaud74 dans le forum Shell et commandes GNU
    Réponses: 0
    Dernier message: 27/08/2012, 12h17
  3. Réponses: 13
    Dernier message: 06/12/2011, 15h17
  4. Suppression des caractères spéciaux
    Par chebmo90 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/06/2009, 16h44
  5. [RegEx] Extraire des nombres séparés par des caractères spéciaux
    Par GouKen dans le forum Langage
    Réponses: 2
    Dernier message: 29/01/2008, 17h49

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