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モジュールの使い方を現役エンジニアが解説【初心者向け】]
(https://techacademy.jp/magazine/19939)
[module NKF]
(https://docs.ruby-lang.org/ja/latest/class/NKF.html)