PageSourceSearch

https://cteasy.com/js/format.js?v=1791407280000

js cteasy.com collected 2026-10-09 00:02:56 UTC 4,178 bytes, 169 lines download raw bytes

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.