我有一个简单的文本框,我正在为此输入数字值。我想在适当的位置将数字值格式化为两位小数和逗号。如果我在文本框中输入10并按下输入后或者离开文本框,它应该转换为10.00。如果我在文本框中输入1000,按下或输入后应该转换为1,000.00请告诉我是否有可能使用javascript执行此操作
<input type="text" name="one" class="currency">
<script>
$('.currency').live('keydown', function(e) {
var key = e.keyCode || e.which;
if (key== 9 || key == 13) {
e.preventDefault();
if( isNaN( parseFloat( this.value ) ) ) return;
this.value = parseFloat(this.value).toFixed(2);
// call custom function here
}
});
</script>
此代码将输出返回为1000.00 但我需要在适当的地方使用句号和逗号
答案 0 :(得分:4)
var price = 34523453.345
price.toLocaleString()
O/P "34,523,453.345"
答案 1 :(得分:0)
您可以使用numeral.js(http://numeraljs.com/)来完成这项工作。
示例代码:
var string = numeral(1000).format('0,0.00');
// output is 1,000.00
答案 2 :(得分:0)
这样的事情应该这样做:
<script type="text/javascript">
function makeCurrency(val){
val = parseFloat(val).toFixed(2);
while (/(\d+)(\d{3})/.test(val.toString())){
val = val.toString().replace(/(\d+)(\d{3})/, '$1'+','+'$2');
}
return val;
}
alert(makeCurrency(12743.7512)); // 12,743.75
alert(makeCurrency(12743)); // 12,743.00
alert(makeCurrency(12743.7)); // 12,743.70
alert(makeCurrency(1274340984893.1)); // 1,274,340,984,893.10
</script>
因此,您只需复制该功能并将this.value = parseFloat(this.value).toFixed(2);
替换为this.value = makeCurrency(this.value);