【问题标题】:How to format a number on `onblur` function in javascript?如何在javascript中的`onblur`函数上格式化数字?
【发布时间】:2011-11-04 09:25:30
【问题描述】:
我的网页有一个输入文本框,用户必须在其中输入一个数字(例如“100000”)。当文本框失去焦点时,我想将此数据格式化为人类可读的格式,例如“100,000”。是否可以在 javascript 中执行此操作?
【问题讨论】:
标签:
javascript
jquery
number-formatting
【解决方案1】:
这里有例子:http://jsfiddle.net/manuel/qgLn4/1/
function addCommas(nStr)
{
nStr += '';
x = nStr.split('.');
x1 = x[0];
x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
return x1 + x2;
}
document.getElementById("a").onblur = function() {
this.value = addCommas(this.value.replace(',', ''))
}
【解决方案3】:
大多数印度人以他的格式代表那里的数字。
document.getElementById("elem").onblur =function (){
var val = this.value.replace(/\,/g,"").split("").reverse();
if( val.length <= 3) return;
var newval = [];
for(var i = 0; i< val.length; i++){
if( i == 3 || (i > 3 && (i - 3)%2 == 0 ) ){
newval.push( ",");
}
newval.push( val[i]);
}
this.value = newval.reverse().join("");
};
jsfiddler