在数字之间添加空格

2024-01-07

我正在尝试输入数字。我已经让我的文本框仅通过以下代码接受数字:

function isNumber(evt) {
    evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
    }
    return true;
}

但现在问题来了,当用户输入号码时,我如何创建空格,就像 iPhone 的电话间距一样,但对于数字来说,例如,如果输入:1000,它将变成 1000;

1
10
100
1 000
10 000
100 000
1 000 000
10 000 000
100 000 000
1 000 000 000

Etc...

我尝试从右侧读取每 3 个字符的输入并添加一个空格。但我的方法效率很低,当我将文本框中的值从 1000 更改为 1000 时,它会出于某种原因选择它,之后按任何键都会删除整个内容。

如果您知道如何执行此操作,请避免使用 jQuery 等 JavaScript 插件。谢谢。


对于整数使用

function numberWithSpaces(x) {
    return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ");
}

对于浮点数,您可以使用

function numberWithSpaces(x) {
    var parts = x.toString().split(".");
    parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, " ");
    return parts.join(".");
}

这是一个简单的正则表达式工作。https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions

如果您不确定该数字是整数还是浮点数,只需使用第二个......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在数字之间添加空格 的相关文章

随机推荐