我想让输入框显示带有空格分隔符的数字,像这样:20 000和20 000 000,而不是20000和20 000 000。并且我希望在输入时实时添加这些间隔。有没有好的解决方案? 我使用这个函数对静态输出进行处理,但是当从文本框获取值,通过该函数运行它,然后将其放回时,它不起作用,原因未知。请保留HTML标记。
function delimitNumber(number) {
var delimiter = " ";
number = new String(number);
var parts = number.split('.', 2);
var decimal = parts[1];
var i = parseInt(parts[0]);
if(isNaN(i))
return '';
var minus = '';
if (i < 0)
minus = '-';
i = Math.abs(i);
var n = new String(i);
var a = [];
while(n.length > 3) {
var nn = n.substr(n.length-3);
a.unshift(nn);
n = n.substr(0,n.length-3);
}
if (n.length > 0)
a.unshift(n);
n = a.join(delimiter);
if (typeof decimal === 'undefined' || decimal.length < 1)
number = n;
else
number = n + '.' + decimal;
number = minus + number; // Assemble the number with negative sign (empty if positive)
return number;
}