tl;dr
開発中のサービス SmartHR で必要になったので、マイナンバー、法人番号の validator を作りました。
こんな感じで検証できます。
# マイナンバーの検証
validates :digits, my_number: { strict: true, allow_blank: true }
# 法人番号の検証
validates :digits, corporate_number: { strict: true, allow_blank: true }
(あんま需要なさそうですが)マイナンバー関連のシステムを構築する際などにご活用ください。
チェックディジットについて
12 桁で構成されているマイナンバーのうち、最後尾の 1 桁は「チェックディジット」として利用されます。
この数値は最後尾の 1 桁を除く 11 桁の数値をもとに算出されます。
入力ミスを計算によって発見することができる、とても便利な仕組みです。
ちなみにマイナンバーのチェックディジット計算方法はこんな感じです。
総務省令第八十五号 第五条よりワザワザこのロジックを書くのは面倒ですね。
Tsubaki を利用すると、簡単にチェックディジットの検証を行うことができます!
法人番号
各企業に割り当てられる 13 桁の法人番号にもチェックディジットが付与されています。
マイナンバーが最後尾の 1 桁をチェックディジットとしている一方で、法人番号は先頭の 1 桁を利用します。また、マイナンバーとは計算方法も少々異なります。
Tsubaki は法人番号の検証にも対応しています。
おまけ
検証用にランダムなマイナンバーや法人番号を生成するページを用意しました。
テスト等にご利用ください。