在数字中添加逗号
我试图让像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