LoginSignup
0
0

More than 1 year has passed since last update.

【Ruby】電話番号をハイフンなしの半角数字に成形する方法

Last updated at Posted at 2022-08-31

環境

Rails 6.0.1
Ruby 2.6.3
PostgreSQL 11.16

ハイフンなしの半角数字に成形する方法

phone_number = '090ー1234ー5678'
phone_number.tr('0-9', '0-9').gsub(/[^0-9]+/, '')

# => "09012345678"

trで全角数字だったら半角数字に成形。
gsubでハイフンなどのinteger以外の文字列が入っていたとき削除(空文字に変換)。

@scivola さんのコメントより
gsubよりシンプルで高速なdeleteもあるとのこと。

phone_number.delete("^0-9")

成形するメソッド

下記記事の内容を組み合わせて、電話番号をきれいに成形するメソッドにしてもいいかも。

def format!(phone_number)
  return nil if phone_number.blank?
  return phone_number if phone_number.match?(/\A[0-9]+\z/)

  phone_number.tr('0-9', '0-9').gsub(/[^0-9]+/, '')
end

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0