我正在检查此代码,该代码是在此处询问的一个问题上找到的,该问题涉及在用户键入数字时添加逗号。
$('input.number').keyup(function(event) {
// skip for arrow keys
if(event.which >= 37 && event.which <= 40) return;
// format number
$(this).val(function(index, value) {
return value
.replace(/\D/g, "")
.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
});
});
~@macek
箭头键跳过工作正常,其余部分。 唯一的问题是当你在两者之间输入或更新数字让我输入
"1234789"
请注意,当我尝试更新并输入 5 和 6 结果为 “123,457,896” 时,我现在没有数字 5 和 6 来完成数字 1 到 9。 6 之所以转到最后一部分是因为在按下第二个键时光标自动移动到最后一部分。
有没有办法让光标停留在当前位置?我不确定这是否是因为 keyup 函数 另外我想解决的是如何使 (CTRL + A) Copy All 文本工作?
顺便说一下,我还没有在正则表达式中使用过,但是上面例子中给出的对正则表达式的更深入的解释是一个加号:)
最佳答案
此方法使用 toLocaleString 在更改后重新格式化数字。由于未传递区域设置,因此将使用浏览器的默认设置,每个用户都应该熟悉。
document.getElementById("num-input").addEventListener("change", function(event) {
var intVal = parseInt(this.value);
if (!isNaN(intVal)) {
this.value = intVal.toLocaleString();
}
console.log(this.value);
});
关于Javascript: 'Issue?' 在文本框中以千位数字更新用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36274528/