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 :

regex trouver que des chiffres suivi de A et pas .A


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut regex trouver que des chiffres suivi de A et pas .A
    bonjour
    j'ai un texte ci dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <li>ampere à 3A 3.5 Ampere 3.5A  .A ne pas prendre</li
    je voudrais recuperer ce qui commence par des chiffres avec ou sans point mais pas .A
    j'ai fait ce code mais ca recupere quand meme .A
    si vous avez une idée .merci pour votre aide

  2. #2
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Essaye ceci :
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    ca marche tester sur http://myregexp.com/
    mais quand je l'utilise avec replace ca ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    repl="30A";rech='\d+(?:\.\d+)?\s*A';
    var rech1 = new RegExp(rech,"ig")
    lign=lign.replace(rech1,repl)

  4. #4
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    c'est bizarre le code semble marche qu'avec çà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [0-9]+(?:\.[0-9]+)? {0,}A

  6. #6
    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 637
    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 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    Une reg

    Je me devais d'y aller de ma tentative
    https://regex101.com/r/wg2DLu/1

    Si tant est que j'ai bien compris le besoin
    ou si on inclut l'espace entre le dernier chiffre et le A
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    merci pour ton intervention toujours tres pertinente
    comme cela c'est mieux car il faut des chiffres avec ou sans point et terminant obligatoirement par A mais ne pas prendre .Allusion par exemple
    et j'aimerais savoir la différence entre ton code au dessus et celui du mien juste apres aidé par watilin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [0-9]+(?:\.[0-9]+)? {0,}A

  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 637
    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 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    se terminant obligatoirement par un A ou [espace]A ?

    https://regex101.com/r/wg2DLu/2


    donc si on décompose [chiffre(s)][.chiffres]A
    Les parties en rouges sont obligatoires
    la partie en vert est facultative

    Je me méfies des look arounds (?: ) en javascript d'autant plus de longueur variable (+) ....
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    se terminant obligatoirement par un A ou [espace]A ?
    oui c'est ca

  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 637
    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 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    il faut donc rajouter l'espace facultatif dans la partie facultative


    [chiffre(s)][.chiffres[espace]]A

    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    merci spacefrog

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    j'ai mon texte comme celà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    age doit être inférieure ou égale à 12V 6.66Amp ou 12V 6.66A[/B]
    et mon code de replace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    lign='age doit être inférieure ou égale à 12V 6.66Amp ou 12V 6.66A'
    rech='\d+(\.\d+\s?)?A';repl="eee"
    var rech1 = new RegExp(rech,"ig")
    lign=lign.replace(rech1,repl)
    alert lign
    ca ne remplace que 6.66Amp et pas 6.66A
    voir le lien test
    https://jsfiddle.net/comexpert/790sxybL/1/

  13. #13
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Je me méfies des look arounds (?: )
    C’est pas un lookaround, c’est juste un groupe non capturant. Comme un groupe () normal, sauf que ça ne crée pas d’entrée dans le tableau retourné en résultat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    console.log("abcd".match(/b(c)/)); // Array [ "bc", "c" ]
    console.log("abcd".match(/b(?:c)/)); // Array [ "bc" ]
    Citation Envoyé par bigs3232 Voir le message
    et mon code de replace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    lign='age doit être inférieure ou égale à 12V 6.66Amp ou 12V 6.66A'
    rech='\d+(\.\d+\s?)?A';repl="eee"
    var rech1 = new RegExp(rech,"ig")
    lign=lign.replace(rech1,repl)
    alert lign
    Le problème vient du fait que tu utilises le constructeur RegExp au lieu d’utiliser la syntaxe littérale entourée par des slashs /. Si tu déclares rech comme une chaîne, les séquences avec un antislash \ sont échapées : \d est transformé en d, \s en s, etc.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    console.log('\d+(\.\d+\s?)?A'); // "d+(.d+s?)?A"
    Deux solutions :
    • échapper les antislashs : rech='\\d+(\\.\\d+\\s?)?A';
    • utiliser la syntaxe littérale : rech1 = /\d+(\.\d+\s?)?A/ig;


    Pour remplacer également « Amp », « Ampère » et « Ampere », il faut rajouter des groupes optionnels.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var rech1 = /\d+(?:\.\d+\s*)?A(?:mp(?:[èe]re)?)?/ig;
    Pour visualiser la regex : https://regexper.com/#%2F%5Cd%2B%28%...%3F%29%3F%2Fig

    Hors sujet : la notation « Amp » est typographiquement incorrecte. Soit on utilise le symbole « A », soit le nom complet « ampère » (avec une minuscule).
    Sont prohibées les abréviations telles que « sec » pour la seconde (s), « mn » pour la minute (min) ou « cc » pour le centimètre cube (cm3).
    — https://fr.wikipedia.org/wiki/Syst%C...typographiques
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  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 637
    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 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    https://jsfiddle.net/790sxybL/13/

    et si tu veux remplacer aussi le "mp" après le A ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rech1=/\d+(\.\d+\s?)?A(mp)?/ig
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    merci aussi a watilin

  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 637
    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 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    C’est pas un lookaround,
    une absence ...
    groupe non capturant bien évidemment

    Je n'avais pas non plus percuté sur l'échappement obligatoire des \ en mode string, bien vu Watoo

    Je ne l'utilise que très rarement pour variabiliser une reg
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. ne taper que des chiffres dans un Tedit
    Par Lorenzo77 dans le forum Delphi
    Réponses: 5
    Dernier message: 05/07/2006, 13h19
  2. Que des chiffres dans un JTextField
    Par hammag dans le forum Composants
    Réponses: 4
    Dernier message: 15/05/2006, 17h44
  3. vérifier que ce sont que des chiffres ?
    Par netwebzone dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/12/2004, 11h32
  4. que des chiffres..
    Par roots_man dans le forum ASP
    Réponses: 2
    Dernier message: 18/11/2004, 15h31

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