私は増分/アイドルゲームを作ることを試みています。カンマを使って大量の数字を区切りたいと思っています。例えば、1,000は1,000になります。値は変更されるまですべて変化します。常に変化する数字をコンマでフォーマットする
$<span id="money">0</span>
上記は、spanタグを使用してjavascriptからmoney変数を呼び出す方法を示しています。どのように私はこのお金の変数が常に変化してもフォーマットされたままであることを確認するでしょうか?
編集
function formatNumber(e){
var rex = /(^\d{2})|(\d{1,3})(?=\d{1,3}|$)/g,
val = this.value.replace(/^0+|\.|,/g,""),
res;
if (val.length) {
res = Array.prototype.reduce.call(val, (p,c) => c + p) // reverse the pure numbers string
.match(rex) // get groups in array
.reduce((p,c,i) => i - 1 ? p + "," + c : p + "." + c); // insert (.) and (,) accordingly
res += /\.|,/.test(res) ? "" : ".0"; // test if res has (.) or (,) in it
this.value = Array.prototype.reduce.call(res, (p,c) => c + p); // reverse the string and display
}
}
var mySpan = document.getElementById("money");
mySpan.addEventListener("change", formatNumber);
私は今、私のjavascriptのにこのコードを実装しているが、それはまだ変数を更新していないようです。
編集2
function moneyClick(number){
money = money + number;
document.getElementById("money").innerHTML = money;
lifetimeearnings = lifetimeearnings + number;
document.getElementById("lifetimeearnings").innerHTML = lifetimeearnings;
}。
チェック[この](https://stackoverflow.com/a/46281147/4543207)それが助けかどうかを確認します。 – Redu
これは私が必要とするものと似ていますが、複数の入力を持つ変数に書式を常に保持する方法を示していません。あなたはこれを行う方法を知っていますか? – FatboyJames
その 'formatNumber'コールバックをspan要素の' 'change" 'イベントリスナーに挿入しようとするかもしれません。 – Redu