gpt4 book ai didi

Javascript 使用逗号和点格式化数字

转载 作者:行者123 更新时间:2023-12-03 07:52:42 25 4
gpt4 key购买 nike

我想创建一个 JavaScript 代码来格式化我的输入号码。例如,当用户输入:100000 时,它将自动转换为 100,000,如果用户输入 1000.22,则结果将是 1,000.22。我创建了这样的代码:

$(document).ready(function(){
$('input.angka').on("keyup click", function(event){
// skip for arrow keys
if(event.which >= 37 && event.which <= 40){
event.preventDefault();
}
var $this = $(this);
var num = $this.val().replace(/,/gi, "").split("").reverse().join("");

var num2 = RemoveRougeChar(num.replace(/(.{3})/g,"$1,").split("").reverse().join(""));

// the following line has been simplified. Revision history contains original.
$this.val(num2);
});
});

function RemoveRougeChar(convertString){
if(convertString.substring(0,1) == ","){
return convertString.substring(1, convertString.length)
}
return convertString;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<input type="text" class="angka form-control" name="hargak" onkeyup="tots();" />

因此我所有具有“angka”类的输入文本框都将被转换。如果我输入的数字不带小数(10000、20000 等),它就可以工作。但是当我使用十进制时,这些代码出错了(1000.22 将导致 1,000,.22)任何人都可以修复此代码吗?

最佳答案

一种可能...您还应该接受使用左右箭头导航...

$(document).ready(function(){
$('input.angka').on("keyup click", function(event){
// skip for arrow keys
if(event.which >= 37 && event.which <= 40){
event.preventDefault();
}
var $this = $(this);
var num = $this.val();
var decs = num.split(".");
num = decs[0];
num = num.replace(/,/gi, "").split("").reverse().join("");

var num2 = RemoveRogueChar(num.replace(/(.{3})/g,"$1,").split("").reverse().join(""));
if(decs.length > 1) {
num2 += '.' + decs[1];
}
$this.val(num2);
});
});

function RemoveRogueChar(convertString){
if(convertString.substring(0,1) == ","){
return convertString.substring(1, convertString.length)
}

return convertString;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<input type="text" class="angka form-control" name="hargak" onkeyup="tots();" />

关于Javascript 使用逗号和点格式化数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34938118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com