如果我有这样的国际电话号码:
0541754301
我如何格式化它以产生这样的东西:
0541-754-301
答案 0 :(得分:20)
您可以使用ActionView::Helpers::NumberHelper
中的number_to_phone(number, options = {})
方法
然而,文档指出该方法将数字格式化为美国电话号码(例如,(555)123-9876)。
相反,您可以使用this patch添加提供编号分组的功能:
:groupings - Specifies alternate groupings
(must specify 3-element array; defaults to [3, 3, 4])
所以在你的情况下你会打电话:
number_to_phone('0541754301', :groupings => [4, 3, 3], :delimiter => "-")
生产:
0541-754-301
答案 1 :(得分:9)
或者,既然你没有找到像括号或'+'这样的任何东西,但只是在数字组之间连字符,你可以:
"0541754301".unpack('A4A3A3').join('-')
答案 2 :(得分:8)
您可以使用正则表达式重新格式化字符串。对于您给出的示例:
"0541754301".sub(/(\d{4})(\d{3})(\d{3})/, "\\1-\\2-\\3") # returns: "0541-754-301"
答案 3 :(得分:3)