如何在Rails中格式化这个国际电话号码?
如果我有这样的国际电话号码:
0541754301
我怎么能格式化它来产生这样的东西:
0541-754-301
您可以使用ActionView :: Helpers :: NumberHelper中的number_to_phone(number, options = {})
方法
然而,文档指出该方法将数字格式化为美国电话号码(例如,(555)123-9876)。
相反,您可以使用此补丁添加提供编号分组的function:
: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
或者,既然您不是在寻找像括号或“+”这样的任何东西,而只是在数字组之间使用连字符,您可以:
"0541754301".unpack('A4A3A3').join('-')
您可以使用正则表达式重新格式化字符串。 对于您给出的示例:
"0541754301".sub(/(\d{4})(\d{3})(\d{3})/, "\\1-\\2-\\3") # returns: "0541-754-301"
有虚假和手机gem可供选择。
Phony.formatted('18091231234', :format => :international).should == '+1 809 123 1234'
或者是相似的
phone.format("+ %c (%a) %n") # => "+ 385 (91) 5125486"