在数字中添加逗号

时间:2014-05-09 00:56:45

标签: ruby regex

我试图让像1234567这样的数字变成1,234,567,但需要一些帮助。我的想法是,我可以使用\d{3}分割,然后加入a。但问题是\d{3}将它从另一端分组,所以它就像123,456,7,我不想要它。

非常感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

我不知道ruby是否已经选择格式化数字但是在正则表达式中你可以这样做

/\G([+-]?\d+?)(?=(?:\d{3})++(?=\.\d++$|$))/g

然后替换为

\1,

样品: http://regex101.com/r/bA9cV2

答案 1 :(得分:1)

我使用Rails' ActiveSupport(即使我没有在实际应用程序中使用Rails),它也为当前语言环境正确地格式化它。如果您还没有使用Rails,则需要安装gem:

gem install activesupport

然后,要求它:

require "active_support/core_ext"

然后你可以这样做:

=> ActiveSupport::NumberHelper.number_to_delimited(1234567)
=> "1,234,567"

答案 2 :(得分:0)

更精确的代码(仅处理整数,因为OP没有提到浮点数!):

def group_digits(n)
  n.to_s.chars
   .reverse
   .each_slice(3)
   .map(&:join)
   .join(",")
   .reverse
end