jQueryのスライダプラグインを使用しようとしていますが、30402424のように30,402,424などのコンマで出力をフォーマットする必要があります。jQueryで数値を書式設定する簡単な方法
私はそれがjavascriptで可能であることを知っていますが、私が見つけた唯一の方法は非常に長く巻き込まれています。私は
jQueryのスライダプラグインを使用しようとしていますが、30402424のように30,402,424などのコンマで出力をフォーマットする必要があります。jQueryで数値を書式設定する簡単な方法
私はそれがjavascriptで可能であることを知っていますが、私が見つけた唯一の方法は非常に長く巻き込まれています。私は
のJavascript自体はあなたが必要として数値をフォーマットをサポートしていません...ので、あなたは私が何を意味するか見ることができますフィドルを作成しましたが、いくつかのグーグルで私は、次の身近な解決策を発見しました私は過去に使用していましたが、より良いコード品質のために若干改訂されました。
function addCommas(numberString) {
numberString += '';
var x = numberString.split('.'),
x1 = x[0],
x2 = x.length > 1 ? '.' + x[1] : '',
rgxp = /(\d+)(\d{3})/;
while (rgxp.test(x1)) {
x1 = x1.replace(rgxp, '$1' + ',' + '$2');
}
return x1 + x2;
}
出典:http://www.mredkj.com/javascript/numberFormat.html
更新フィドル:http://jsfiddle.net/EX5U7/8/
は、ここであなただけ露骨にコンマごとに3を加えるよりもさらに多くを行うにできるように、JavaScriptでPHPのnumber_format
機能を実装して、別の解決策、です番号:
function number_format (number, decimals, dec_point, thousands_sep) {
number = (number + '').replace(/[^0-9+\-Ee.]/g, '');
var n = !isFinite(+number) ? 0 : +number,
prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
s = '',
toFixedFix = function (n, prec) {
var k = Math.pow(10, prec);
return '' + Math.round(n * k)/k;
};
// Fix for IE parseFloat(0.55).toFixed(0) = 0;
s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
if (s[0].length > 3) {
s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
}
if ((s[1] || '').length < prec) {
s[1] = s[1] || '';
s[1] += new Array(prec - s[1].length + 1).join('0');
}
return s.join(dec);
}
使用法:中number_format(123456.789, 2, '.', ',');
結果123,456.79
リンク元の関連する部分をあなたの答えに含め、正しい参照を付けました。スタックオーバーフロー時のすべての回答は、リンクをたどれずに理解できるはずです。 –
+1正確に私がやったこと:-) – ManseUK
ノートをありがとう、ロブ。まだあまりにも多くの質問にまだ答えなかった!今私の答えを訂正します。 :) –
を考えますaccounting.jsを使用します。これは、正規表現を使用して
書式設定数、お金と通貨のための小さなJavaScriptライブラリです。
ui.value = (ui.value).toString().split("").reverse().join("").replace(/(\d{3})(?=\d)/g,"$1,").split("").reverse("").join("")
溶液に欠陥があります。明らかに間違っている£275,579,809,0などの番号を許可します。 £2,755,798,090 –
する必要があります。右の文字列を置き換える必要があります。今この作品 – abuduba
Downvoteが削除されました! –
これは複製です。
しかし、あなたの情報については、This Questionで提供ソリューションは、私はこれを試して、あなたのJSFiddle
$(function() {
$("#slider").slider({
value:100,
min: 0,
max: 5000000000,
step: 1,
slide: function(event, ui) {
$("#amount").val("£" + addCommas(ui.value));
}
});
$("#amount").val("£" + addCommas($("#slider").slider("value")));
});
function addCommas(nStr) {
nStr += '';
var x = nStr.split('.');
var x1 = x[0];
var x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
return x1 + x2;
}
を編集することができ:
function formatNumber(n){
n += '';
x = n.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');
}
return x1 + x2;
}
は、私はこれを得たところから覚えていないが、それを使用していますここに:https://github.com/amantur/jquery.ui.counter
Dupe:http://stackoverflow.com/questions/2646385/add-a-thousands-separator-to-a-total-with-javascript-or-jquery - すべての正解以下はリンクされた質問からの@ dave1010の解決策を実装しています –