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 :

séparateur des milles


Sujet :

JavaScript

  1. #21
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    Citation Envoyé par doublemetre Voir le message
    merci, voilà c'est corrigé

    Mais ici je suis juste ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <td><input onclick="calculSalaire" name="result" type="button" value=" Calcul prix du bien " /></td>
    <td>&nbsp;</td>
    <td><input onclick="calculBien" name="result2" type="button" value=" Calcul du salaire " /></td>
    la bonne syntaxe pour l'appel des fonction est
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <td><input onclick="calculSalaire('Salaire', 'Bien')" name="result" type="button" value=" Calcul prix du bien " /></td>
    <td>&nbsp;</td>
    <td><input onclick="calculBien( 'Bien', 'Salaire')" name="result2" type="button" value=" Calcul du salaire " /></td>
    pendant que tu y es tu peux ne garder dans un premier temps que le 2 fonctions de calcul attendu que tu ne sers pas des autres

  2. #22
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 41
    Points : 19
    Points
    19
    Par défaut
    Là ca fonctionne avec que le 2 fonctions le calcul se fait bien
    et même tout le script aussi. Merci pour ta patience.

    Mais le résultats n'a pas de séparation pour les milliers.

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans nom</title>
    <script type="text/javascript">
     
        Memory  = "0";      // initialise memory variable
        Current = "0";      //   and value of Display ("current" value)
        Operation = 0;      // Records code for eg * / etc.
        MAXLENGTH = 30;     // maximum number of digits before decimal!
     
     
    function gup( name )
    {
      name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
      var regexS = "[\\?&]"+name+"=([^&#]*)";
      var regex = new RegExp( regexS );
      var results = regex.exec( window.location.href );
      if( results == null )
        return "";
      else
        return results[1];
    }
     
    function insertNthChar(string,chr,nth) {
      var output = '';
      for (var i=0; i<string.length; i++) {
        if (i>0 && i%4 == 0)
          output += chr;
        output += string.charAt(i);
      }
     
      return output;
    }
     
    function calculBien( param1, param2){
      var valeur = (document.Calculator[param1].value).replace(/\s/g, '');
      valeur = (( valeur * 0.8) * 0.0725) / 0.33;
      if (!isFinite( valeur)){
        valeur = "Valeur trop grande";
      }
      if( isNaN( valeur)){
        valeur = "Valeur incorrecte";
      }
      document.Calculator[param2].value = Math.round( valeur).toLocaleString();
    }
    function calculSalaire( param1, param2){
      var valeur = document.Calculator[param1].value.replace(/\s/g, '');
      valeur  = (((valeur/3)/0.0725)/0.8)*1;
      if (!isFinite( valeur)){
        valeur = "Valeur trop grande";
      }
      if( isNaN( valeur)){
        valeur = "Valeur incorrecte";
      }
      document.Calculator[param2].value = Math.round( valeur).toLocaleString();
    }
     
     
    function FixCurrent(param) {
     
      Current = document.Calculator[param].value;
      if (Current.indexOf("NaN") != -1) {
        Current = "Valeur incorrecte";
      };
      document.Calculator[param].value = Current;
    }
    </script>
    </head>
     
    <body>
    <form name="Calculator">
      <table width="398" id="calcul">
        <tbody>
          <tr>
            <td width="6">&nbsp;</td>
            <td width="163">Salaire brut annuel:</td>
            <td width="16">&nbsp;</td>
            <td width="193">Prix du bien:</td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td><input name="Salaire" type="text" class="contactform" size="20" maxlength="40" /></td>
            <td>&nbsp;</td>
            <td><input class="contactform" maxlength="40" name="Bien" size="20" type="text" /></td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td><input onclick="calculSalaire('Salaire', 'Bien')" name="result" type="button" value=" Calcul prix du bien " /></td>
            <td>&nbsp;</td>
            <td><input onclick="calculBien( 'Bien', 'Salaire')" name="result2" type="button" value=" Calcul du salaire " /></td>
          </tr>
        </tbody>
      </table>
    </form>
    </body>
    </html>

  3. #23
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    ps: que tu sois sous chrome firefox n'hésites pas à te servir de la console d'erreurs. ça affichera toutes ou la première erreur rencontrée.

  4. #24
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 41
    Points : 19
    Points
    19
    Par défaut
    Alors j'ai remis le script du mask et la ça fonctionne presque bien.
    Lors de la saisie mon nombre se format bien, mais quand je clique sur le bouton pour lancer le calcul, le résultat n'est pas formaté.

  5. #25
    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 669
    Points
    66 669
    Billets dans le blog
    1

  6. #26
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 41
    Points : 19
    Points
    19
    Par défaut
    Merci, mais c'est bien cela qu'il me faut pour séparer les milliers ?

    Comment puis-je imposer une saisie monétaire dans un input ?

  7. #27
    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 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Haaaaaaaaaaaa !
    En effet, ce n'est pas le post que je voulais retrouver, j'ai posté une solution quelque part et je n'arrive pas à remettre la main dessus

    Je continue de chercher...

    http://www.developpez.net/forums/d53...ombre-decimal/

  8. #28
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 41
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    J'ai trouvé cela mais je n'arrive pas à l'intégrer.

    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
    16
    function lisibilite_nombre(nbr)
    {
    		var nombre = ''+nbr;
    		var retour = '';
    		var count=0;
    		for(var i=nombre.length-1 ; i>=0 ; i--)
    		{
    			if(count!=0 && count % 3 == 0)
    				retour = nombre[i]+' '+retour ;
    			else
    				retour = nombre[i]+retour ;
    			count++;
    		}
    		alert('nb : '+nbr+' => '+retour);
    		return retour;
    }
    Est-ce que je peux vous demander un coup de main ?
    Merci d'avance

  9. #29
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    pourquoi continué à chercher des fonctions pour formater la sortie alors que celle proposée par Willpower fonctionne très bien, alors que les String considérée comme des Array ce n'est pas encore gagné pour toutes les versions encore très présente, IE7 par exemple.

    Aller je te remets la mienne répondant à ton besoin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function formatValeur( nombre){
      nombre += '';
      var valeur = nombre.replace(',','.').split('.');
      valeur[0] = valeur[0] || '0';
      valeur[1] = valeur[1] || '00';
      var sep = ' ';
      var reg = /(\d+)(\d{3})/;
      while( reg.test( valeur[0])) {
        valeur[0] = valeur[0].replace( reg, '$1' +sep +'$2');
      }
      return valeur.join('.');
    }
    Il est une chose à laquelle tu dois t'attendre c'est le "déformatage", et oui il va bien falloir faire des calculs sur des chiffres et non sur des Strings pleines d'espaces.

    En gros :
    • Lors de la saisie, vérification de la saisie à la volée, onkeyup
    • Formatage de la saisie lors de la perte de focus, onblur
    • Déformatage lors de la reprise de la saisie éventuelle, onfocus
    • Déformatage de la saisie pour le calcul
    toutes ces possibilités doivent être prise en compte, et il me semble que tout est présent dans les réponses fournies.

  10. #30
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 41
    Points : 19
    Points
    19
    Par défaut
    Un grand MERCI pour ton aide, je vais regarder tout cela ce weekend.

  11. #31
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 128
    Points : 210
    Points
    210
    Par défaut
    Vous avez je trouve des solutions bien compliquées pour quelque chose que l'on peut résoudre avec une expression régulière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /(\d)(?=(?:\d{3})+(?:$))/g
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    '1234567890'.replace(/(\d)(?=(?:\d{3})+(?:$))/g, '$1 ');
    // > "1 234 567 890"
     '123456789'.replace(/(\d)(?=(?:\d{3})+(?:$))/g, '$1 ');
    // > "123 456 789"
     '12345678'.replace(/(\d)(?=(?:\d{3})+(?:$))/g, '$1 ');
    // > "12 345 678"

  12. #32
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par TheGwy Voir le message
    Vous avez je trouve des solutions bien compliquées pour quelque chose que l'on peut résoudre avec une expression régulière
    Sauf qu'on ne t'avait pas vraiment attendu pour l'envisager

    Sans compter qu'utiliser une expression régulière pour une opération aussi simple est plus gourmand en ressources (... hum... argument assez mauvais dans ce contexte où la performance ne fera aucune différence... ok je retire ce point )

  13. #33
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    je rajouterai sans compter que cela ne fonctionne pas avec les nombres décimaux et c'est pour cette raison que j'ai modifié ma première approche.

  14. #34
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    quant à moi, les regExp sont ma bête noire.

    mais effectivement, TheGwy, ta solution inline est pas mal et je suis certain qu'il y a moyen de l'adapter pour les décimaux.


    enfin, on n'est pas là pour se taper dessus les gars en disant que notre solution est la meilleure, on aide dès qu'on peut et si on a une meilleure solution à proposer, on la propose gentillement sans traiter les autres de tous les noms et ainsi tout le monde peut apprendre et continuer à se perfectionner.

  15. #35
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 41
    Points : 19
    Points
    19
    Par défaut
    Voilà j'en suis là:

    L'ors de ma saisie j'ai bien la séparartion des milliers qui se fait mais avec une virgule et de se faite le calcule ne se fait pas. comment faire our qu'à la palce j'ai simplement un espace ?

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    <SCRIPT LANGUAGE="JavaScript">
    function currencyFormat(fld, milSep, decSep, e) {
    var sep = 0;
    var key = '';
    var i = j = 0;
    var len = len2 = 0;
    var strCheck = '0123456789';
    var aux = aux2 = '';
    var whichCode = (window.Event) ? e.which : e.keyCode;
    if (whichCode == 13) return true;  // Enter
    key = String.fromCharCode(whichCode);  // Get key value from key code
    if (strCheck.indexOf(key) == -1) return false;  // Not a valid key
    len = fld.value.length;
    for(i = 0; i < len; i++)
    if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;
    aux = '';
    for(; i < len; i++)
    if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
    aux += key;
    len = aux.length;
    if (len == 0) fld.value = '';
    if (len == 1) fld.value = '0'+ decSep + '0' + aux;
    if (len == 2) fld.value = '0'+ decSep + aux;
    if (len > 2) {
    aux2 = '';
    for (j = 0, i = len - 3; i >= 0; i--) {
    if (j == 3) {
    aux2 += milSep;
    j = 0;
    }
    aux2 += aux.charAt(i);
    j++;
    }
    fld.value = '';
    len2 = aux2.length;
    for (i = len2 - 1; i >= 0; i--)
    fld.value += aux2.charAt(i);
    fld.value += decSep + aux.substr(len - 2, len);
    }
    return false;
    }
    //  End -->
    </script>
    <script type="text/javascript">
     
        Memory  = "0";      // initialise memory variable
        Current = "0";      //   and value of Display ("current" value)
        Operation = 0;      // Records code for eg * / etc.
        MAXLENGTH = 30;     // maximum number of digits before decimal!
     
     
    function calculBien( param1, param2){
      var valeur = (document.Calculator[param1].value).replace(/\s/g, ',');
      valeur = (( valeur * 0.8) * 0.0725) / 0.33;
      if (!isFinite( valeur)){
        valeur = "Valeur trop grande";
      }
      if( isNaN( valeur)){
        valeur = "Valeur incorrecte";
      }
      document.Calculator[param2].value = Math.round( valeur).toLocaleString();
    }
    function calculSalaire( param1, param2){
      var valeur = document.Calculator[param1].value.replace(/\s/g, ',');
      valeur  = (((valeur/3)/0.0725)/0.8)*1;
      if (!isFinite( valeur)){
        valeur = "Valeur trop grande";
      }
      if( isNaN( valeur)){
        valeur = "Valeur incorrecte";
      }
      document.Calculator[param2].value = Math.round( valeur).toLocaleString();
    }
     
     
    function FixCurrent(param) {
     
      Current = document.Calculator[param].value;
      if (Current.indexOf("NaN") != -1) {
        Current = "Valeur incorrecte";
      };
      document.Calculator[param].value = Current;
    }
    </script>
     
    </head>
     
    <body>
     
    <form name="Calculator">
      <table width="398" id="calcul">
        <tbody>
          <tr>
            <td width="6">&nbsp;</td>
            <td width="163">Salaire brut annuel:</td>
            <td width="16">&nbsp;</td>
            <td width="193">Prix du bien:</td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td> <input class="contactform" type=text name="Salaire" length=15 onKeyPress="return(currencyFormat(this,',','.',event))"></td>
     
            <td>&nbsp;</td>
     
           <td> <input class="contactform" type=text name="Bien" length=15 onKeyPress="return(currencyFormat(this,',','.',event))"></td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td><input onclick="calculSalaire('Salaire', 'Bien')" name="result" type="button" value=" Calcul prix du bien " /></td>
            <td>&nbsp;</td>
            <td><input onclick="calculBien( 'Bien', 'Salaire')" name="result2" type="button" value=" Calcul du salaire " /></td>
          </tr>
        </tbody>
      </table>
    </form>
    </body>
    </html>

  16. #36
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 128
    Points : 210
    Points
    210
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    je rajouterai sans compter que cela ne fonctionne pas avec les nombres décimaux et c'est pour cette raison que j'ai modifié ma première approche.
    Citation Envoyé par Willpower Voir le message
    mais effectivement, TheGwy, ta solution inline est pas mal et je suis certain qu'il y a moyen de l'adapter pour les décimaux.
    Effectivement, cela ne marche pas avec les nombres décimaux, tout comme (si je ne me trompe) les fonctions number_format et formatMillier que vous avez tout les deux proposés.

    On peut résoudre ça assez facilement, en utilisant une expression pour les entiers et une pour les décimaux. (gérer les deux cas en une seule expression serait très dur en javascript car les look-behind ne sont pas supportés)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    // nombres entiers :
    '123456789120'.replace(/(\d)(?=(?:\d{3})+(?:$))/g, '$1 ');
     
    // nombres décimaux, pas de formatage sur la partie décimale :
    '123456789120,10025456'.replace(/(\d)(?=(?:\d{3})+(?:,))/g, '$1 ');
     
    // nombres décimaux, formatage sur la partie entière ET décimale :
    '1234567890,10025456'.replace(/(\d{3})(?!\d*,)(?=\d)|(\d{1,3})(?=(?:\d{3})+(?:,))/g, '$1$2 ');

    Citation Envoyé par Willpower Voir le message
    enfin, on n'est pas là pour se taper dessus les gars en disant que notre solution est la meilleure, on aide dès qu'on peut et si on a une meilleure solution à proposer, on la propose gentillement sans traiter les autres de tous les noms et ainsi tout le monde peut apprendre et continuer à se perfectionner.
    ...

    J'ai juste dis que vos solutions étaient compliquées. Je n'ai pas traité les autres de tout les noms ni tapé sur qui que ce soit.

    On a encore le droit de dire quand on voit quelqu'un partir dans une solution inutilement compliqué. Je n'ai manqué de respect à personne, je ne suis juste pas adepte de la langue de bois.

  17. #37
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    Citation Envoyé par TheGwy
    J'ai juste dis que vos solutions étaient compliquées. Je n'ai pas traité les autres de tout les noms ni tapé sur qui que ce soit.

    On a encore le droit de dire quand on voit quelqu'un partir dans une solution inutilement compliqué. Je n'ai manqué de respect à personne, je ne suis juste pas adepte de la langue de bois.
    pas de soucis avec cela

    Citation Envoyé par TheGwy
    Effectivement, cela ne marche pas avec les nombres décimaux, tout comme (si je ne me trompe) les fonctions number_format et formatMillier que vous avez tout les deux proposés.
    le cahier des charges a évolué entre temps et les décimales sont apparues depuis.

    concernant, je ne pense pas qu'il soit nécessaire de formater la partie décimale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // nombres décimaux, pas de formatage sur la partie décimale :
    nombre.replace(/(\d)(?=(?:\d{3})+(?:,))/g, '$1 ');
    cette proposition est plus que sympathique, et je la classe dans mon fichier spécial regExp, en y ajoutant le remplacement des virgules par des points, sauf si il y a encore moyen de réduire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nombre.replace(/(\d)(?=(?:\d{3})+(?:,))/g, '$1 ').replace(',','.');
    Citation Envoyé par doublemetre
    L'ors de ma saisie j'ai bien la séparartion des milliers qui se fait mais avec une virgule et de se faite le calcule ne se fait pas. comment faire our qu'à la palce j'ai simplement un espace ?
    cela fait partie des paramètres passés à la fonction, le 2nd, tu n'a qu'à mettre un espace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onKeyPress="return(currencyFormat(this,' ','.',event))"
    MAIS le calcul ne devrait pas mieux ce faire avec un espace, petit rappel

    En gros :
    • Lors de la saisie, vérification de la saisie à la volée, onkeyup
    • Formatage de la saisie lors de la perte de focus, onblur
    • Déformatage lors de la reprise de la saisie éventuelle, onfocus
    • Déformatage de la saisie pour le calcul
    je concède que déformatage n'est pas très élégant!

  18. #38
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 41
    Points : 19
    Points
    19
    Par défaut
    Un Grand Merci à tous.

    C'est tout bon!!

    Merci encore pour votre patience

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

Discussions similaires

  1. Publipostage et séparateur des milliers
    Par Tchock dans le forum Word
    Réponses: 6
    Dernier message: 19/06/2008, 10h33
  2. Séparateur des milliers
    Par Tchupacabra dans le forum Langage
    Réponses: 2
    Dernier message: 27/06/2007, 10h24
  3. Réponses: 3
    Dernier message: 28/04/2007, 15h07
  4. Récupérer le séparateur des décimales
    Par Dadou74 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 09/02/2007, 12h00
  5. Séparateurs des milliers
    Par blowlagoon dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 26/05/2006, 10h02

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