getallen formaat javascript

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Andy V

Andy V

13/11/2012 20:16:22
Quote Anchor link
Hoi, ik zit een beetje vast, ik wil graag dat de getallen die door javascript weergeven worden juist met komma op het scherm getoond worden zoals dit: "1 000,00" nu is het dit: "1000,00" ik heb daarvoor een functie van het internet geplukt en dat is deze:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
function formatNumber(number)
{
    number = number.toFixed(2) + '';
    x = number.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? ',' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + ' ' + '$2');
        console.log(x1);  
    }
    return x1 + x2;
}


Een komma geeft hij al, maar de duizendtallen worden niet opgesplitst met een spatie, hij komt ook niet door de while dat heb ik zoals je ziet al getest met console.log();

Hopelijk kan iemand me hier even mee helpen.

Toevoeging op 13/11/2012 21:27:24:

het werkt wel maar alleen als er een 3 in voor komt dus bijvoorbeeld:

ik geef in : 10222222.00 dit word: 10222222,00
als ik dit ingeef: 10333333.00 word het: 10 33 33 33.00

dat heb ik dus niet nodig ik wil dat het zo gaat met eender welk getal: 10 000 000,00
Gewijzigd op 13/11/2012 21:27:51 door Andy V
 
PHP hulp

PHP hulp

19/04/2024 17:49:43
 
Kris Peeters

Kris Peeters

14/11/2012 12:05:13
Quote Anchor link
De functie werkt goed, volgens mij.

Toon eens hoe je die functie gebruikt; en in welke context ...

Merk dus op: de functie verwacht als input een (floating point) nummer en geeft een string terug.
Ik veronderstel dat je ergens in je code met misse dataType bezig bent.
Javascript gaat iets minder soepel om met dataTypes dan php.

Voorbeeld dat ik getest heb en waar ik geen probleem zie:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<input onchange="document.getElementById('message').innerHTML = formatNumber(Number(this.value))">
<div id="message"></div>
<script>
function formatNumber(number)
{
    number = number.toFixed(2) + '';
    x = number.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? ',' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + ' ' + '$2');
        console.log(x1);  
    }
    return x1 + x2;
}
</script>
 
Andy V

Andy V

14/11/2012 20:43:25
Quote Anchor link
heb het al opgelost met een plugin:

http://www.mredkj.com/javascript/NumberFormat154.js

en dan dit stukje in de code toegevoegd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
   var obj = total;
    var num = new NumberFormat();
    num.setInputDecimal(',');
    num.setNumber(obj); // obj.value is '300000,56'
    num.setPlaces('3', true);
    num.setCurrencyValue(' ');
    num.setCurrency(false);
    num.setCurrencyPosition(num.RIGHT_OUTSIDE);
    num.setNegativeFormat(num.RIGHT_DASH);
    num.setNegativeRed(false);
    num.setSeparators(true, ' ', ',');
    total = num.toFormatted();

en nu werkt het mooi, het was geen probleem met dataType, alles werkt zoals het hoort.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.