使用正则表达式从货币中删除小数点?

Man*_*ram -1 javascript regex

我有一个从 json 数据获取的货币值范围,如下格式:$25,000-$35,000。它在 Chrome 和 Firefox 中显示为类似,但在 IE9 和 IE10 浏览器中显示为“$25,000.00-$35,000.00”。

想要删除 IE 浏览器上点后的那些零。我尝试过以下正则表达式:

s.replace(/(\.[0-9]*?)0+$/, "");
Run Code Online (Sandbox Code Playgroud)

但得到的输出如下:

"$25,000.00-$35,000"
Run Code Online (Sandbox Code Playgroud)

仅删除值的末尾。请让我知道正则表达式有什么问题?请帮我解决这个问题。

小智 5

根据是否存在,点后可能有除 0 之外的其他内容以及可以有多少个:

  • /\.(.*?[0]*)/g:删除点和所有后面的零
  • /\.(.*?[0]{1,2})/g:删除点和后面的 1 或 2 个零
  • /\.(.*?[0-9]*)/g/\.(.*?\d*)/g:删除点和后面的数字
  • /\.(.*?[0-9]{1,2})/g/\.(.*?\d*)/g:删除点和后面的 1 或 2 个数字

希望这可以帮助