文本框十进制格式在PHP中修复

时间:2013-10-04 07:11:05

标签: javascript php jquery

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

3 个答案:

答案 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);

即可

最初来自add commas to a number in jQuery