Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:函数未正确格式化数字_Javascript - Fatal编程技术网

JavaScript:函数未正确格式化数字

JavaScript:函数未正确格式化数字,javascript,Javascript,我有一个函数,每4个数字放一个逗号,这样它的格式就是货币。问题是前4个数字没有在应该添加逗号的地方添加逗号,它只在输入空格时正确设置所有内容的格式。另外,为什么我的输入允许输入空格键,而我将其设置为不允许?谢谢 <script> //Gets the value of the key that was pressed function keypress(e){ var z=""; var min

我有一个函数,每4个数字放一个逗号,这样它的格式就是货币。问题是前4个数字没有在应该添加逗号的地方添加逗号,它只在输入空格时正确设置所有内容的格式。另外,为什么我的输入允许输入空格键,而我将其设置为不允许?谢谢

   <script>
    //Gets the value of the key that was pressed
      function keypress(e){
                var z="";
                var minStr = document.getElementById('min').value;
                var charval = String.fromCharCode(e.keyCode);
                var backspaceKey = String.fromCharCode(8);
                var tabKey = String.fromCharCode(9);
                var enterKey = String.fromCharCode(13);
                var spaceBarKey = String.fromCharCode(32);
    //Validates that only numbers and specific types of keys can be entered
                if(         isNaN(charval) &&
                            charval != backspaceKey &&
                            charval != tabKey &&
                            charval != enterKey &&
                            charval == spaceBarKey){
                    return false;
                }
                //Start of the function that adds commas
                if(minStr.length > 1 
                  && charval != backspaceKey
                  && charval != tabKey
                  && charval != enterKey
                  ){

//adds commas to the string
                    minStr = minStr.replace(/\D/g, "");
                    var minArray = minStr.split("");
                    var j = 0;
                    for(var i = minStr.length; i > 0; i--){
                        if(j == 3){
                            minArray.splice(i, 0, ",");
                            j = 0;
                        }
                        j++;
                    }
                    minArray = minArray.join("");
                    document.getElementById('min').value = minArray;
//Here is where it adds a comma to the first 4 numbers
                    if(minStr.length == 4){
                        var minArray = minStr.split("");
                        minArray.splice(1, 0, ",");
                        minArray = minArray.join("");
                        document.getElementById('min').value = minArray;
                    }
                }   
            }
    </script>
    <body>

      <input type="text" name="min" id="min" class="mini" onkeydown="return keypress(event)" placeholder="Enter the Min">
      <input type="text" name="max" id="max" onkeydown="return keypress(event)" placeholder="Enter the Max">

    </body>

//获取按下的键的值
功能按键(e){
var z=“”;
var minStr=document.getElementById('min')。值;
var charval=String.fromCharCode(e.keyCode);
var backspaceKey=String.fromCharCode(8);
var tabKey=String.fromCharCode(9);
var enterKey=String.fromCharCode(13);
var spaceBarKey=String.fromCharCode(32);
//验证是否只能输入数字和特定类型的密钥
如果(伊斯南(夏瓦尔)&&
charval!=退格键&&
charval!=tabKey&&
查瓦尔!=enterKey&&
charval==spaceBarKey){
返回false;
}
//添加逗号的函数的开头
如果(minStr.length>1
&&charval!=退格键
&&charval!=tabKey
&&查瓦尔!=enterKey
){
//在字符串中添加逗号
minStr=minStr.替换(/\D/g,“”);
var minArray=minStr.split(“”);
var j=0;
对于(变量i=minStr.length;i>0;i--){
如果(j==3){
拼接(i,0,“,”);
j=0;
}
j++;
}
minArray=minArray.join(“”);
document.getElementById('min')。value=minArray;
//在这里,它在前4个数字中添加了一个逗号
如果(minStr.length==4){
var minArray=minStr.split(“”);
拼接(1,0,“,”);
minArray=minArray.join(“”);
document.getElementById('min')。value=minArray;
}
}   
}

演示:

我已经更新了您的代码-

keydown--> keyup

String.fromCharCode(e.keyCode)--> e.keyCode(used direct keycode)
检查一下-

您可以使用