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 :

Enlever zero (0) inutile devant un ou plusieurs nombres en Javascript (regex?) [RegExp]


Sujet :

JavaScript

  1. #21
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    SpaceFrog a tout à fait raison car sa pattern à la particularité de consommer entièrement tous les nombres de la chaîne sans exception (puisque les zéros sont optionnels) donc il devient inutile de vérifier ce qui précède ou ce qui suit. On peut d'ailleurs pousser le bouchon plus loin en écrivant carrément reg=/0*(\d[.\d]*)/g;.

    @darth_jreaux: Attention, si je deviens l'empereur des forces du mal, j'aurais le privilège de renommer mes disciples (qui à chacune de mes requêtes répondront: "il sera fait selon vos désirs.").
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  2. #22
    Membre du Club
    Homme Profil pro
    Reconverti Dev Web
    Inscrit en
    Septembre 2019
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Reconverti Dev Web
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2019
    Messages : 88
    Points : 56
    Points
    56
    Par défaut
    Merci à tous, la regex de CosmoKnacki marche nickel sur Chrome et Firefox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    regex   = /(^|[^\d.])0+\B/g;
    str       = str.replace(regexFirstZero, "$1");
    Apres si vous avez une regex qui peut retirer les 0 inutile en decimal, je suis preneur .
    Pour le moment je passe par une boucle while et une regex. Vue que je veux une précision de 8 après la virgule, sur les résultats qui tombent juste j'ai forcement plein de 0 inutiles.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    const regexZeroDecimal = /\./;
     
    str= eval(str).toFixed(8).replace(/(\d+(\.\d+[1-9])?)(\.?0+$)/,'$1'); //supprime les zeros et la virgule inutile générés par toFixed
    while (str.slice(-1) == "0" && regexZeroDecimal.test(str) == true) 
    	str= str.slice(0,-1); //supprime les zeros récalcitrants
    J'imagine qu'il doit bien avoir une regex qui peut faire cela en 1 seule ligne?

  3. #23
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Si tu veux une précision à 8, tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     str = Number(eval(str).toFixed(8)).toString();
    La méthode Number.prototype.toString() ne fait que convertir en chaîne de caractères, les zéros non significatifs ont déjà été enlevés avec l'application de Number().
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  4. #24
    Membre du Club
    Homme Profil pro
    Reconverti Dev Web
    Inscrit en
    Septembre 2019
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Reconverti Dev Web
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2019
    Messages : 88
    Points : 56
    Points
    56
    Par défaut
    Tout simplement!

    Merci ça marche du tonnerre!

    Il y a tres peu d'information sur la methode Number().

  5. #25
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    dernier délire, pour enlever zéros superflus dans partie entière et partie décimale.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    str = str.replace(/(\d+\.?\d*)/g,(p)=>{return parseFloat(p)});
    console.log(str);

  6. #26
    Membre du Club
    Homme Profil pro
    Reconverti Dev Web
    Inscrit en
    Septembre 2019
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Reconverti Dev Web
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2019
    Messages : 88
    Points : 56
    Points
    56
    Par défaut
    En tout cas je peux vous dire que la solution à ce problème de 0 va servir à beaucoup de monde sur le web!

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. enlever zero à gauche
    Par minooo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 15/03/2010, 11h49
  2. Enlever les 0 inutiles
    Par Chacha35 dans le forum Développement
    Réponses: 3
    Dernier message: 02/12/2009, 18h55
  3. [MySQL] Chiffre décimal, enlever les zéros inutiles
    Par morgan47 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 03/07/2007, 02h46
  4. Enlever les services inutiles ?
    Par Michaël dans le forum Sécurité
    Réponses: 6
    Dernier message: 25/10/2005, 16h12
  5. Enlever les espaces inutiles d'un AnsiString
    Par jamesb dans le forum C++Builder
    Réponses: 2
    Dernier message: 27/01/2005, 12h40

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