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 :

RegExp Replace et toUpperCase()


Sujet :

JavaScript

  1. #1
    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 RegExp Replace et toUpperCase()
    voilà suite à une question que l'on ma posée sur le chat, j'ai bien trouvé une solution (enfin un pansement avec des split) pour arriver au bon resultat, masi je reste persu&dé que c'est réalisable avec des regExp

    par exemple comment transformer
    pays-bas
    en Pays-Bas

    Voici ou j'en suis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type='text/javascript'>
    var chaine="pays-Bas"
     
    var reg=new RegExp("([a-z]{1})([a-z]+-)([a-z]{1})([a-z]+)","gi")
    var result=chaine.replace(reg,Cap($1))
    alert(result)
     
    function Capitalize(lettre){
      return lettre.toUpperCase();}
    </script>
    Mais bon bien entendu cela ne fonctionne pas, je n'arriev tout simpelemtn pas à retourner $1 en majuscule ...
    j'ai bein trouvé sur le net #U, mais cela n'a pas l'air d'être implémenté en javascript ...


    et je trouve très curieux que:
    me retourne P
    mais
    me retourne p

  2. #2
    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
    bon à priori je faisais fausse route avec le replace !!


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var re = new RegExp("([a-z]{1})([a-z]+-)([a-z]{1})([a-z]+)","gi")
    var chaine = 'pays-bas';
    chaine.match(re);
    chaine = RegExp.$1.toUpperCase() + RegExp.$2.toLowerCase() + RegExp.$3.toUpperCase() + RegExp.$4.toLowerCase();
    alert(chaine)

  3. #3
    Membre averti Avatar de htr999
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 331
    Points : 394
    Points
    394
    Par défaut
    une façon
    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
    <script language="JavaScript">	
    function extrait(chaine) {
    	var exp=new RegExp("\-","g");
    	var tab=chaine.split(exp);
    	return tab;
    }
     
    var mots = extrait("pays-bas-holland");
    var tiret = "";
    for (var i=0; i<mots.length; i++){
    	mots[i] = mots[i].charAt(0).toUpperCase()+mots[i].substr(1,mots[i].length);
    	document.write(tiret+mots[i]);
    	var tiret = "-";
    }
     </script>

  4. #4
    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
    Oui merci , mais comme précisé au dessus j'avais déja une solution avec des spilt ...
    Mon but était de ne le faire qu'avec des regExp ...

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/10/2010, 16h08
  2. replace regExp et casse
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 02/08/2007, 16h46
  3. regExp replace détresse absolue
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/07/2007, 13h44
  4. [REGEXP] Question Utilisation fonction replace
    Par calitom dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/03/2007, 17h39
  5. [RegExp] replace
    Par CUCARACHA dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/10/2005, 17h08

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