LoginSignup
3
5

More than 1 year has passed since last update.

Rubyの標準モジュール「NKF」を使ってみましょうかね。

Last updated at Posted at 2021-06-05

NKFとは?

NKFモジュールとは文字コードを変換することが出来るRubyの標準ライブラリです。
例えば、ひらがなをカタカナに変換したり、全角を半角へ変換するのを簡単に行えます。

使い方

NKF.nkf(オプション、文字列)とする。

使用例

バリデーションでDBに保存する前に、空白を削除したりなどデータを整形するのに利用出来ます。
textには、それぞれに対応する文字列(メールアドレスや名前など)が渡ってくる想定です。

require 'nkf'

module StringNormalizer
  extend ActiveSupport::Concern

  def normalizer_as_email(text)
    NKF.nkf("-W -w -Z1", text).strip if text
  end

  def normalizer_as_name(text)
    NKF.nkf('-W -w -Z1', text).strip if text
  end

  def normalizer_as_furigana(text)
    NKF.nkf('-W -w -Z1 --katakana', text).strip if text
  end

  def normalizer_as_postal_code(text)
    NKF.nkf("-W -w -Z1", text).strip.gsub(/-/, "") if text
  end

  def normalizer_as_phone_number(text)
    NKF.nkf('-W -w -Z1', text).strip if text
  end
end

よく使うオプション一覧

オプション 意味
-h1 カタカナに変換する
-h2  ひらがなに変換する
-s Shift_JISでの出力する
-w UTF-8で入力する
-W UTF-8での出力する
-Z1 全角空白を半角空白へ変換する
-Z2 全角空白を空白2つに変換する

参考

RubyのNKFモジュールの使い方を現役エンジニアが解説【初心者向け】

module NKF

3
5
0

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
3
5