0

ユーザーから入力を取得し、それを 1,000 のようなコンマ数に変換する HTML5 Web アプリに取り組んでいますが、コンマを使用して 1,000.00 のような固定値にも変換する必要があるため、このメソッドをここに追加する方法は次のとおりです。私のコード

これが私のコードのjsfiddleデモです

http://jsfiddle.net/FhZ6y/3/

ここにコードがあります

 <input type="text" id="test" onBlur="addCommas(this)">
 <input type="hidden" id="testRealValue">

 <script>
 function isNumber(n) {
 return !isNaN(parseFloat(n)) && isFinite(n);
 } 
 function addCommas(input){



nStr = input.value;
if(!isNumber(nStr))return;
document.getElementById("testRealValue").value = nStr;
var offset = nStr.length % 3;
if (offset == 0)
    input.value = nStr.substring(0, offset) + nStr.substring(offset).replace(/([0-9]{3})(?=[0-9]+)/g, "$1,");
else
    input.value = nStr.substring(0, offset) + nStr.substring(offset).replace(/([0-9]{3})/g,    ",$1");
    var a =document.getElementById('testRealValue').value;
   alert(a);
} 
</script>
4

1 に答える 1

1

最初にフロートを解析してから、toFixed を適用する必要があります。

function isNumber(n) {
    return !isNaN(parseFloat(n)) && isFinite(n);
}
function addCommas(input){



    nStr = input.value;
    if(!isNumber(nStr))return;
    nStr = parseFloat(nStr).toFixed(2);
    document.getElementById("testRealValue").value = nStr;
    var offset = nStr.length % 3;
    if (offset == 0)
        input.value = nStr.substring(0, offset) + nStr.substring(offset).replace(/([0-9]{3})(?=[0-9]+)/g, "$1,");
    else
        input.value = nStr.substring(0, offset) + nStr.substring(offset).replace(/([0-9]{3})/g,    ",$1");
        var a =document.getElementById('testRealValue').value;
    alert(a);


}

もちろん、tofixed を適用しているので、コンマを挿入するメソッドは間違ったインデックスを使用しています。適切な場所にコンマを挿入するように修正する必要がありますが、それはあなたに任せます。

于 2013-04-26T06:57:05.150 に答える