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 :

expression régulière pour splitter des données suivant un masque


Sujet :

JavaScript

  1. #1
    LEK
    LEK est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Points : 470
    Points
    470
    Par défaut expression régulière pour splitter des données suivant un masque
    Bonjour je dois décrypter un code reçu en paramètre d'une fonction et je voulais savoir si l'extraction des informations que je désire est réalisable avec les expressions régulières en javascript :
    Chacun de mes codes posséderas :
    - 0 ou 1 préfixe alpha num
    - 1 corps numérique
    - 0 ou 1 suffixe alpha num

    En fait par exemple je reçois un code de ce type "A945445", et je reçois en pramètre un masque de la forme AA[0-n]###AA autrement dit je dois être capable d'extraire de mon code les données suivantes :
    préfixe = A9
    corps numérique = 454
    suffixe = 45

    Puis je facilement arriver à mes fins avec des expressions régulières ou existent il un autre moyens simple?

  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 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    split tout court en javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var code= "A945445"
    tabcode=code.split('')
     
    var prefixe=tabcode[0]+tabcode[1]
    var corps=tabcode[2]+tabcode[3]+tabcode[4]
    var sufixe=tabcode[5]+tabcode[6]
     
    alert('prefixe : ' + prefixe +'; corps : ' + corps + '; sufixe : ' +sufixe)
    sinon ya subsrt ou substring

  3. #3
    LEK
    LEK est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Points : 470
    Points
    470
    Par défaut
    Merci SpaceFrog effectivement je pourrait faire du split, substr, substring... mais ce que je veux c'est en fonction du pattern de masque extraire automatiquement les valeurs de mes données suffixe/prefixe/corps .
    Normalement le préfixe et le suffixe auront un nombre 0 ou n déterminé de valeurs mais la partie corps pourra être variable... Je peux effectivement simplement faire un substr pour le préfixe, un autre pour le suffixe et déduire de là la partie corps... Mais je me demandais si quelqu'un connaissait qqchose de plus élégant.

  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 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    avec le split il est possible de prendre les deux premiers, les deux dernier et de prendre le reste pour le corps ...
    mais cela doit aussi être réalisable avec un regExp ...
    Malheureusement là je ne vais pas t'être d'un grand secours ...

  5. #5
    LEK
    LEK est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Points : 470
    Points
    470
    Par défaut
    ce n'est pas grave, je vais voir sur la toile.
    Merci quand même

  6. #6
    Membre confirmé Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Points : 514
    Points
    514
    Par défaut
    Il y a moyen de bidouiller. Par contre, un mask complex demandera plusieurs séries de transformation pour arriver à générer le bon pattern qui sera à même de matcher la chaîne. Un exemple avec un mask simplifié:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var mask = "AA###AA"; 
    var pattern = mask.replace(/((.)\2*)/g,
                              function(s, c1){ return "(.{"+c1.length+"})" });
     
    //pattern := "(.{2})(.{3})(.{2})"
     
    var rgx = new RegExp("^"+pattern+"$");
    var match = rgx.exec("A945445");
     
    //match[1], match[2] et match[3] sont les 3 sous chaînes

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

Discussions similaires

  1. [RegEx] Expression régulière pour supprimer des doublons
    Par cbroissa dans le forum Langage
    Réponses: 5
    Dernier message: 20/05/2017, 01h59
  2. [RegEx] expression régulière pour remplacer des balises
    Par oceanbigone dans le forum Langage
    Réponses: 5
    Dernier message: 29/05/2007, 18h11
  3. Réponses: 2
    Dernier message: 27/02/2007, 09h16
  4. [RegEx] Expression régulière pour réduire des URL
    Par kivan666 dans le forum Langage
    Réponses: 6
    Dernier message: 11/06/2006, 21h39
  5. [RegEx] Expression régulière pour trouver des mots
    Par cbroissa dans le forum Langage
    Réponses: 7
    Dernier message: 26/05/2006, 23h39

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