J'ai ces chiffres
10999
et 8094
et 456
Et tout ce que je veux, c’est d’ajouter une virgule au bon endroit si elle en a besoin pour qu’elle ressemble à ceci
10,999
et 8,094
et 456
Ce sont tous dans une balise p comme ceci <p class="points">10999</p>
etc.
Cela peut-il être fait?
Je l'ai essayé ici avec l'aide d'autres messages http://jsfiddle.net/pdWTU/1/ mais n'arrive pas à le faire fonctionner
Merci
Jamie
[~ # ~] met à jour [~ # ~]
J'ai déconné un peu et réussi à le comprendre ici http://jsfiddle.net/W5jwY/1/
Allez regarder le nouveau plugin de globalisation pour une meilleure façon de le faire
Merci
Jamie
Fonctionne sur tous les navigateurs, c'est tout ce dont vous avez besoin.
function commaSeparateNumber(val){
while (/(\d+)(\d{3})/.test(val.toString())){
val = val.toString().replace(/(\d+)(\d{3})/, '$1'+','+'$2');
}
return val;
}
Cela a été écrit pour être compact, et au point, grâce à regex. Ceci est directement JS, mais vous pouvez l’utiliser dans votre jQuery de la manière suivante:
$('#elementID').html(commaSeparateNumber(1234567890));
ou
$('#inputID').val(commaSeparateNumber(1234567890));
Number(10000).toLocaleString('en'); // "10,000"
La réponse de Timothy Pirez était très correcte, mais si vous devez remplacer les chiffres par des virgules dès que l'utilisateur saisit textfield, vous voudrez peut-être utiliser la fonction Keyup.
$('#textfield').live('keyup', function (event) {
var value=$('#textfield').val();
if(event.which >= 37 && event.which <= 40){
event.preventDefault();
}
var newvalue=value.replace(/,/g, '');
var valuewithcomma=Number(newvalue).toLocaleString('en');
$('#textfield').val(valuewithcomma);
});
<form><input type="text" id="textfield" ></form>
Jetez un oeil à Numeral.js . Il peut formater des nombres, des devises, des pourcentages et prend en charge la localisation.
function delimitNumbers(str) {
return (str + "").replace(/\b(\d+)((\.\d+)*)\b/g, function(a, b, c) {
return (b.charAt(0) > 0 && !(c || ".").lastIndexOf(".") ? b.replace(/(\d)(?=(\d{3})+$)/g, "$1,") : b) + c;
});
}
alert(delimitNumbers(1234567890));
Jetez un coup d'œil à la récente version plug-in de globalisation de jQuery par Microsoft
Utilisation de toLocaleString ref at https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ Number/toLocaleString
function formatComma(value, sep = 0) {
return Number(value).toLocaleString("ja-JP", { style: "currency", currency: "JPY", minimumFractionDigits: sep });
}
console.log(formatComma(123456789, 2)); // ¥123,456,789.00
console.log(formatComma(123456789, 0)); // ¥123,456,789
console.log(formatComma(1234, 0)); // ¥1,234
Je suppose que vous faites une sorte de localisation, jetez donc un œil à ce script .