1/** 2 * Fonction trim pour JAVASCRIPT 3 */ 4String.prototype.trim = function () { 5 return this.replace(/(^\s*)|(\s*$)/g, '') 6} 7 8/* 9======================= 10Traitement sur les chaînes : Replace ALL 11*/ 12function replaceAll (Source, stringToFind, stringToReplace) { 13 14 var temp = Source 15 16 var index = temp.indexOf(stringToFind) 17 18 while (index != -1) { 19 20 temp = temp.replace(stringToFind, stringToReplace) 21 22 index = temp.indexOf(stringToFind) 23 24 } 25 26 return temp 27 28} 29 30/*--------------------------------------------------------------- 31 * 32 * FORMAT 33 * 34 ----------------------------------------------------------------*/ 35 36function format (valeur, nbDeci, separateurMilliers, separateurDeci) { 37 38 var logMsg = 'format ' + valeur 39 40 // formate un chiffre avec 'nbDeci' chiffres après la virgule et un separateur 41 42 valeur = valeur.replace(/ /g, '') 43 valeur = valeur.replace(/\,/, '.') 44 45 var valeurNegative = (0 == valeur.search(new RegExp('[\\-]', 'g'))) 46 47 // nettoyage de la valeur, on enlève tout les chiffres 48 // compris entre 0 et 9 et les points 49 valeur = valeur.replace(new RegExp('[^0-9\\.]', 'g'), '') 50 51 var deci = Math.round(Math.pow(10, nbDeci) * 52 (Math.abs(valeur) - Math.floor(Math.abs(valeur)))) 53 var val = Math.floor(Math.abs(valeur)) 54 55 if (nbDeci == 0) { 56 val = Math.floor(Math.abs(valeur)) 57 deci = 0 58 } 59 else if (deci == Math.pow(10, nbDeci)) { 60 val = Math.floor(Math.abs(valeur) + 1) 61 deci = 0 62 } 63 var val_format = val + '' 64 var nb = val_format.length 65 for (var i = 1; i < 4; i++) { 66 if (val >= Math.pow(10, (3 * i))) { 67 val_format = val_format.substring(0, nb - (3 * i)) + separateurMilliers + 68 val_format.substring(nb - (3 * i)) 69 } 70 } 71 72 if (nbDeci > 0) { 73 var decim = '' 74 for (var j = 0; j < (nbDeci - deci.toString().length); j++) {decim += '0'} 75 deci = decim + deci.toString() 76 val_format = val_format + separateurDeci + deci 77 } 78 79 if (valeurNegative == true) { 80 val_format = '-' + val_format 81 } 82 83 logMsg += ' > ' + val_format 84// devlog(logMsg); 85 86 return val_format 87} 88 89/*--------------------------------------------------------------- 90 * 91 * UNFORMAT 92 * 93 ----------------------------------------------------------------*/ 94 95function unformat (valeur, nbDeci, separateurMilliers, separateurDeci) { 96 97 98 // devlog("unformat : "+valeur+" nbDeci="+nbDeci+" separateurMilliers="+separateurMilliers+" separateurDeci="+separateurDeci) 99 var valCalcul 100 101 // récupère la valeur d'un champ formaté : opération inverse de function format(...) 102 if (separateurMilliers == separateurDeci) { 103 myAlert('Erreur formatage') 104 } 105 106 var valeurNegative = (0 == valeur.search(new RegExp('[\\-]', 'g'))) 107 108 // nettoyage de la valeur, on enlève tout les chiffres 109 // compris entre 0 et 9 et les caractères séparteurs de milliers et de décimale 110 var reg = new RegExp('[^0-9\\' + separateurMilliers + '\\' + separateurDeci + 111 ']', 'g') 112 valCalcul = valeur.replace(reg, '') 113 114 if (separateurMilliers != '') { 115 valCalcul = replaceAll(valCalcul, separateurMilliers, '') 116 } 117 118 if (separateurDeci == '.') return valCalcul 119 120 val_format = replaceAll(valCalcul, separateurDeci, '.') 121 122 if (isNaN(val_format)) { 123 val_format = 0.0 124 } 125 126 if (valeurNegative == true) { 127 val_format = '-' + val_format 128 } 129 130 // devlog("unformat result : "+val_format) 131 return val_format 132 133} 134 135/** 136 * Ajoute des espaces pour tout les 3 chiffres 137 * @param s le nombre a formatter 138 * @return 139 */ 140function sepMillier (s) { 141 var sRegExp = new RegExp('(-?[0-9]+)([0-9]{3})') 142 var sValue = s + '' 143 var sep = ' ' 144 while (sRegExp.test(sValue)) { 145 sValue = sValue.replace(sRegExp, '$1' + sep + '$2') 146 } 147 return sValue 148} 149 150/** 151 * Ajoute des espaces pour tout les 3 chiffres et force 2 chiffres apres la virgule 152 * @param s le nombre a formatter 153 * @return 154 */ 155function sepMillier2 (s) { 156 if (parseFloat(s) != null) 157 s = parseFloat(s).toFixed(2) 158 var sRegExp = new RegExp('(-?[0-9]+)([0-9]{3})') 159 var sValue = s + '' 160 var sep = ' ' 161 while (sRegExp.test(sValue)) { 162 sValue = sValue.replace(sRegExp, '$1' + sep + '$2') 163 } 164 return sValue 165} 166 167function unsepMillier (s) { 168 return s.split(' ').join('') 169}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.