0

我正在开发 HTML5 Web 应用程序,在该应用程序中我从用户那里获取输入并将其转换为逗号数字,例如 1,000,但我希望使用逗号它也应该转换为固定值,例如 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 回答