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 :

replace regExp et casse


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 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut replace regExp et casse
    je récupère un innerHTML avec des vrais morceaux entiers de balise <strong></strong> dedans ...

    je souhaiterais trouver un regExp pour les supprimer...

    à l'heure actuelle pour couvrir IE et FFX je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TexteRef.toLowerCase().split('<strong>').join('').split('</strong>').join('');
    c'est mieux que rien, mais je perds les majuscules ...
    le toLowerCase étant pour couvrir IE qui convertit en balise <STRONG>

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par SpaceFrog
    c'est mieux que rien, mais je perds les majuscules ...
    le toLowerCase étant pour couvrir IE qui convertit en balise <STRONG>
    Dans la mesure où il s'agit de chaînes fixes ("STRONG") tu peux pas faire la conversion avant ton RegExp (replace() ) ?
    Tu pourrais ainsi virer le toLowerCase() de ton split()/join() ...

    A+

  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 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    non parceque sous ffx c'est strong et sous IE STRONG

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par SpaceFrog
    non parceque sous ffx c'est strong et sous IE STRONG
    Oui, mais si l'instruction d'avant tu remplaces "STRONG" par "strong", ça aura un effet que pour IE et tu auras la même chose dans les 2 cas pour ton regexp final ...

    Je tente pas de l'écrire : le Regexp et moi, ça fait 2

    A+

  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 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    je n'ai pas d'instruction d'avant ...

    je recupère un innerHTML avec des balises <strong>... </strong>

    tu voudrais dire que je replace strong par STRONG avant ?

    ce serait beaucoup plus simple en regExp ...

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par SpaceFrog
    je n'ai pas d'instruction d'avant ...

    je recupère un innerHTML avec des balises <strong>... </strong>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    TexteRef.replace(...);  // Remplace "STRONG" par "strong" avec le regexp qui va bien, donc 
    TexteRef.toLowerCase().split('<strong>').join('').split('</strong>').join('');
    Pas possible ?

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TexteRef.replace(...).split('<strong>').join('').split('</strong>').join('');
    Serait déjà moins génant que le tolowerCase() ...

    Avec ... correspondant toujours au regexp approprié

  8. #8
    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 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    oui ben tant qu'a avoir un regExp Approprié plus besoin du split ...
    tu fais un replace direct sur <?strong> en minusci=ules en majuscule et le tour est joué ...

  9. #9
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 143
    Points
    11 143
    Par défaut
    bonjour,

    utilise replace() :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     var data = document.getElementById("test").innerHTML;
     data = data.replace(/(\<strong\>)/gi,"");
     data = data.replace(/(\<\/strong\>)/gi,"");
     alert(data);

    précise les directives g (global) et i (ignore case)

  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 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    oki pour ça auteur
    oui mais en une seule ligne ça donnerait quoi

    un pattern du type tout ce qui est compris entre <????>

  11. #11
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Points : 374
    Points
    374
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     data = data.replace(/(\<\/?strong\>)/gi,"");

  12. #12
    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 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    haaaaa ... merci shin

    et serait-ce-abuser que de pousser jusqu'à toute balise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     data = data.replace(/(\<\/?[a-z]\>)/gi,"");

  13. #13
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Points : 374
    Points
    374
    Par défaut
    Non, mais ton cas gère une seule lettre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data = data.replace(/(\<\/?([a-z]*)\>)/gi,"");

  14. #14
    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 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    je ne comprendrais décidément jamais rien aux regExp, d'autant plus que je n'ai pas appris les mêmes en PHP

    merci à vous je teste tout ça demain
    mais je mets dores et déja le post en résolu

  15. #15
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Points : 374
    Points
    374
    Par défaut
    J'ai rajouté un point d'interrogation, ça décrit un éliment ou un ensemble optionnel, et l'étoile + le pattern entre parathèses décrivent que le contenu entre parenthèses peut être présent plusieurs fois, il me semble que \w fait la même chose.

  16. #16
    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 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Shin tu n'aurais pas une bonne référence ou un bon tuto pour gros Noob sur les regExp javascript ... (désolé de le dire mais celui de dev est impémétrable pour moi ...)

  17. #17
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 143
    Points
    11 143
    Par défaut
    Citation Envoyé par Shinuza
    J'ai rajouté un point d'interrogation, ça décrit un éliment ou un ensemble optionnel, et l'étoile + le pattern entre parathèses décrivent que le contenu entre parenthèses peut être présent plusieurs fois, il me semble que \w fait la même chose.
    si mes souvenirs sont bons :
    w équivaut à [0-9A-Za-z_]

    donc [a-z] est ce qu'il y a de mieux.


    Space >> en faisant des exercices sur les expressions régulières ?

  18. #18
    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 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    oui mais il doit bien y avoir un tuto de base qui explique new regExp test match replace et tout le bazard avec les bases de la construction d'un pattern

    commencer par / ou ^ou je ne sais quoi ...

  19. #19
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 143
    Points
    11 143
    Par défaut
    voici 3 exemples que j'ai mis de côté :
    http://www.developpez.net/forums/sho...d.php?t=375134 (très dur)
    http://www.developpez.net/forums/sho...d.php?t=291790
    http://www.developpez.net/forums/sho...d.php?t=285614


    sinon pour déclarer une expression régulière tu as 2 possibilités:
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var exp = new RegExp("^[a-z]$","gi");
    équivaut à
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var exp = /^[a-z]$/gi;

  20. #20
    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 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    merci je vais commencer à m'immuniser ...

    a regExp a Day keeps Auteur away ^^

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

Discussions similaires

  1. Fonction REPLACE sensible à la casse
    Par bivort dans le forum Langage SQL
    Réponses: 4
    Dernier message: 14/08/2017, 14h53
  2. Replace() insensible à la casse
    Par khayyam90 dans le forum Contribuez
    Réponses: 0
    Dernier message: 09/02/2011, 22h25
  3. [REGEXP] Question Utilisation fonction replace
    Par calitom dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/03/2007, 17h39
  4. [String] replace sans la casse
    Par zaoueche dans le forum Langage
    Réponses: 6
    Dernier message: 27/04/2006, 15h42
  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