在数字中添加逗号

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

非常感谢您的帮助!

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

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

然后替换为此

 \1, 

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

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

 gem install activesupport 

然后,要求它像这样:

 require "active_support/core_ext" 

然后你可以这样做:

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

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

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