JANコードからメーカーを割り出す
明快に説明してくれている資料がどうしても見つからないのですが、、EANコード体系のうち、45と49で始まるのが日本の国コードを持った番号で俗にいう(正式名称?)JANコードとなります。短縮(8桁)コードの場合、その下の4桁、通常(13桁)の場合、5桁及び7桁が事業者毎に割り当てられる領域(メーカーコード)です。
JANコードからメーカーコードを求める関数の実装例です。13桁の場合、国コードとメーカーコードの合計長が7か9か判断できないため、それぞれ指定して動作するようになっています(引数:n)。実際の運用では適宜データベースに問い合わせて、存在判定をした上で決定するような実装になるでしょう。
#! /usr/local/bin/ruby
def to_makercode(code,n=9)
return nil unless code.start_with?("45") || code.start_with?("49")
if code.length == 8
code[0,6]+"XC"
elsif code.length == 13
if n == 9
code[0,9]+"XXXC"
elsif n == 7
code[0,7]+"XXXXXC"
else
raise "Number must be 7 or 9: #{n}"
end
else
return nil
end
end
以下は使用例です。
puts to_makercode("45345678") #=> 453456XC
puts to_makercode("4534567890123",7) #=> 4534567XXXXXC
puts to_makercode("4534567890123",9) #=> 453456789XXXC
参考URL
この記事は役に立ちましたか?
- EnglishWorm.com
- SinglesFan.com
- LmLab.net
- サイトマップ
- 運営者について