0

我有一个简单的文本框,我正在输入数值。我想将数值格式化为两位小数并在适当的位置使用逗号。就像我在文本框中输入 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 但我需要在适当的位置使用句点和逗号

4

3 回答 3

4
var price = 34523453.345
price.toLocaleString()

O/P "34,523,453.345"
于 2013-10-04T07:18:23.600 回答
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);

最初来自在 jQuery 中将逗号添加到数字中

于 2013-10-04T07:28:06.013 回答
0

您可以使用 numeric.js ( http://numeraljs.com/ ) 来完成这项工作。

示例代码:

var string = numeral(1000).format('0,0.00');
// output is 1,000.00
于 2013-10-04T07:18:19.040 回答