如何在x位数后添加空格?

时间:2013-12-10 13:58:56

标签: ruby-on-rails ruby regex

如何在一定数量的数字后添加空格?

如果我有号码02920555555并想在第五个号码之后添加一个空格,我该怎么办呢?我可以使用gsub和正则表达式执行此操作吗?我想把它放在帮手中:

def area_code(tel)
  tel.gsub()
end

由于

4 个答案:

答案 0 :(得分:4)

只需使用insert方法:

'02920555555'.insert(5, ' ')
# => "02920 555555"

答案 1 :(得分:3)

使用'\& '作为替换字符串。 (\&表示匹配的字符串)

'02920555555'.gsub(/\d{4}/, '\& ')
# => "0292 0555 555"

<强>更新

仅在第5个号码后添加空格,请使用sub代替gsub

'02920555555'.sub(/\d{5}/, '\& ')
# => "02920 555555"

或使用gsub模式^...(仅匹配输入字符串的开头):

'02920555555'.gsub(/^\d{5}/, '\& ')
# => "02920 555555"

答案 2 :(得分:1)

如果您对regex感到不舒服,那么您可以使用insert方法:

'123456789'.insert(5, ' ')

insert方法的第一个参数是position(您要插入的索引),第二个参数是您要插入的字符。

因此,我们的代码是说取数123456789并在space索引5

输出:

"12345 6789"

答案 3 :(得分:0)

'0292055555'.gsub(/(\d{5})(\d*)/, "\\1 \\2")
# => 02920 55555