【问题标题】:Add dollar sign in to currency format?将美元符号添加到货币格式?
【发布时间】:2016-06-09 17:36:39
【问题描述】:

这是我的代码,它以货币格式返回数字,但我希望在数字前添加美元符号 ($)。

document.getElementById("numbers").onblur = function (){    
                this.value = parseFloat(this.value.replace(/,/g, ""))
                    .toFixed(2)
                    .toString()
                    .replace(/\B(?=(\d{3})+(?!\d))/g, ",");
                }

id 数字指的是输入文本

谢谢!

【问题讨论】:

  • 您是否尝试过仅使用字符串连接? this.value = "$" + parseFloat(... the rest)
  • @hotforfeature。最好的答案。有时人们就是只见树木不见森林......
  • @hotforfeature 这行得通,但是当您尝试再次更改金额时,它会返回 $NaN(谢谢)
  • 基于上面的 cmets,您可以尝试在进行一些计算之前从字符串中删除美元符号,完成后将其添加回来。
  • toFixed() 返回一个字符串,您可以放心地删除对toString() 的后续调用。顺便说一句,我建议使用 CSS 生成的内容来显示货币,或者只是在包含 <input> 的元素之前插入一个元素。

标签: javascript html numbers currency


【解决方案1】:

使用字符串连接并更新您的正则表达式以用空字符串替换逗号和美元符号。当您重新解析另一个模糊更改的值时,这将防止NaN 错误。

document.getElementById("numbers").onblur = function (){    
  this.value = "$" + parseFloat(this.value.replace(/(,|\$)/g, "")) // Matches "," or "$" literally
    .toFixed(2)
    .toString()
    .replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}

【讨论】:

  • 替代将其粘贴在字符类中:.replace(/[,$]/g, '') 将按字面意思对待$
【解决方案2】:

查看我对之前类似问题的回答:

Adding Two Decimal Places using JavaScript

【讨论】:

    【解决方案3】:

    accounting.js 是一个用于数字、货币和货币格式的小型 JavaScript 库。

    http://openexchangerates.github.io/accounting.js/

    【讨论】:

      【解决方案4】:

      已创建 codepen url 以供参考。我只是尝试在输入字段上添加 onblur 函数

      var x = (document.getElementById("numbers").value);
      x = "$"+((x)*1).toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
      

      http://codepen.io/nagasai/pen/LZGWjp

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-05
        • 2011-11-26
        • 2022-01-07
        • 1970-01-01
        相关资源
        最近更新 更多