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

JavaScript Discussion :

Remplacer les caractères spéciaux dans un prénom(Regex)


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 141
    Points : 53
    Points
    53
    Par défaut Remplacer les caractères spéciaux dans un prénom(Regex)
    Bonjour Je voudrais remplacer des caractères spéciaux quand une personne renseigne son prénom.
    J'arrive à mettre une majuscule s'il ya - ou_ ou. mais pas quand il ya une espace dans le prénom.
    Je souhaiterais changer les caractères spéciaux mais je n'y arrive pas.
    Voici mon code.
    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
    18
    19
    20
    21
    22
    23
    24
    25
     
      function f_js_nomPrenomProspect(idPrenom){
    	var obj=document.getElementById(idPrenom);
    	var chaine=obj.value;
    	var reg=new RegExp("[-._]+", "g");
    	var Sous_Chaine=chaine.split(reg);
    	var prenom="";
    	for(i=0;i<Sous_Chaine.length;i++){
    		var lettre_un=Sous_Chaine[i][0].toUpperCase();
    		var reste_mot=Sous_Chaine[i].substring(1).toLowerCase();
    			if(prenom !=""){
    			prenom += ' '+lettre_un+reste_mot;
    			}else{
    			prenom += lettre_un+reste_mot;
    			}
    	}
    obj.value = prenom;
    var new_string = prenom;
    		var pattern_accent = new Array("é", "è", "ê", "ë", "ç", "à", "â", "ä", "î", "ï", "ù", "ô", "ó", "ö");
    		var pattern_replace_accent = new Array("e", "e", "e", "e", "c", "a", "a", "a", "i", "i", "u", "o", "o", "o");
    		if (my_string && my_string!= "") {
    			new_string = preg_replace (pattern_accent, pattern_replace_accent, my_string);
    		}
    		return new_string;
    }


    Aidez moi svp!

  2. #2
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Tous les caractères spéciaux ? Il vaut mieux définir les caractères autorisés plutot que de lister tous les interdits dans ce cas ^^

    Pour les lettres accentuées, je ne sais pas si ça t'aide mais en ce qui me concerne j'utilise quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String.prototype.sansAccents = function() {
       return this.replace(/[ùûü]/g,"u").replace(/[îï]/g,"i").replace(/[àâä]/g,"a").replace(/[ôö]/g,"o").replace(/[éèêë]/g,"e").replace(/ç/g,"c");
    }
    qui s'utilise assez simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var chaineApres = chaineAvant.sansAccents();
    ... mais ça ne gère que les accents de la langue française, ça n'a rien d'exhaustif, donc comme je te disais, définis d'abord les caractères que tu veux autoriser

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    pourquoi enchainer les replace ?
    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
    var tab1="ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ"  
    var tab2=	"aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn"
    var chaine="étamine et pâtisson À à manger croître  ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñœ"
    rep2=tab1.split('')
    rep=tab2.split('')
    myarray=new Array()
    var i=-1
    while(rep2[++i]){
    myarray[rep2[i]]=rep[i]
    }
    myarray['Œ']='OE'
    myarray['œ']='oe'
     
    function foo(){
     return chaine.replace(/./g, function($0){return (myarray[$0])?myarray[$0]:$0 })
    }
    alert(foo(chaine))

  4. #4
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    +1 pour la solution plus complète de SF ^^

    ( sauf pour le mini oubli du param )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function foo(chaine){
     return chaine.replace(/./g, function($0){return (myarray[$0])?myarray[$0]:$0 })
    }

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    il est facultatif car dans ce call back les matches du reg sont passés par defaut

  6. #6
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    il est facultatif car dans ce call back les matches du reg sont passés par defaut
    Je suis pas sûr d'avoir bien saisi...

    Mais du coup c'est le param passé qui est inutile... non ? ^^ ( alert(foo(chaine)) )

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Ha ... desolé au temps pour moi !!
    Nous ne parlons pas de la même chose ...
    ma variable chaine est declarée en globale dans ce script de test

    Je parlais en fait de la fonction de remplacement dans le callback du remplacement.

  8. #8
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Ah ben je me disais aussi

    ( @sajodia : désolé pour cette interruption intempestive de ton post mais ça me faisait mal )

  9. #9
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 141
    Points : 53
    Points
    53
    Par défaut
    Merci beaucoup ça marche super bien mais par contre je ne sais pas comment ajouter l'espace dans mon regex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var reg=new RegExp("[-._]+", "g");
    Merci de votre aide

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var reg=new RegExp("[ ._-]+", "g");

  11. #11
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 141
    Points : 53
    Points
    53
    Par défaut
    Je suis hyper contente.Merci encore!

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

Discussions similaires

  1. Remplacer les caractères spéciaux dans xml
    Par panda31 dans le forum Développement de jobs
    Réponses: 14
    Dernier message: 19/10/2011, 09h53
  2. Remplacer les caractères spéciaux dans un string
    Par MartinezGarcia dans le forum Oracle
    Réponses: 8
    Dernier message: 30/09/2011, 18h24
  3. Réponses: 3
    Dernier message: 18/02/2008, 14h05
  4. Réponses: 5
    Dernier message: 04/12/2007, 11h00
  5. les caractères spéciaux dans l'url, c'est mal !
    Par _gargamel_ dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 10/05/2007, 16h03

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