Javascript 如何将toFixed()应用于HTML5 web app中的输入值
我正在开发HTML5 web应用程序,在该程序中,我从用户处获取输入,并将其转换为逗号数字(如1000),但我希望使用逗号时,它也应转换为固定值(如1000.00),因此如何添加此方法是我的代码 下面是我的代码的JSFIDLE演示 这是密码Javascript 如何将toFixed()应用于HTML5 web app中的输入值,javascript,html,web,Javascript,Html,Web,我正在开发HTML5 web应用程序,在该程序中,我从用户处获取输入,并将其转换为逗号数字(如1000),但我希望使用逗号时,它也应转换为固定值(如1000.00),因此如何添加此方法是我的代码 下面是我的代码的JSFIDLE演示 这是密码 <input type="text" id="test" onBlur="addCommas(this)"> <input type="hidden" id="testRealValue"> <script>
<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>
函数isNumber(n){
return!isNaN(parseFloat(n))和&isFinite(n);
}
函数addCommas(输入){
nStr=输入值;
如果(!isNumber(nStr))返回;
document.getElementById(“testRealValue”).value=nStr;
var offset=nStr.length%3;
如果(偏移量==0)
input.value=nStr.substring(0,offset)+nStr.substring(offset).替换(/([0-9]{3})(?=[0-9]+)/g,“$1”);
其他的
input.value=nStr.substring(0,offset)+nStr.substring(offset).replace(/([0-9]{3})/g,“,$1”);
var a=document.getElementById('testRealValue').value;
警报(a);
}
您应该首先解析浮点,然后应用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,因此插入逗号的方法使用了错误的索引,您应该对其进行修改,以便将逗号插入到正确的位置,但我会让你自己决定,这意味着你的代码只会显示固定值而不是逗号,我已经做过了,但当我添加逗号时,它不起作用,你能不能在JSFIDLE中编辑,因为我已经给出了链接