モジュール:法人番号検査
表示
このLuaモジュールは、与えられた番号が法人番号として適切かどうかを検査します。番号が13桁の数値であり、かつチェックディジット(参考)が合っていれば検査に合格します。
使い方
#invokeで呼び出す
{{#invoke:法人番号検査|main|検査対象の番号}}
テンプレートから当モジュールを使用する場合は、上記のようにしてmain関数を呼び出してください。検査に合格すればmain関数は空文字列を返し、不合格であれば文字列のerror
を返します。したがってテンプレート側で#if文や#switch文などを記述すれば、合格の場合と不合格の場合で処理を分けることができます。
他のモジュールから使用する
local result = require('モジュール:法人番号検査').check(id) -- idは検査対象の番号
他のモジュールから当モジュールを利用する場合は、check関数を呼び出すことで検査を行えます。check関数は第1引数に渡された値(文字列型である必要があります)について検査を行い、検査に合格すればブール値のtrue
を返し、不合格であればブール値のfalse
を返します。
関連項目
- Category:法人番号に誤りがあるページ - 当モジュールを使用しているテンプレートによって付与される追跡カテゴリ
- モジュール:Check isxn
- Template:法人番号
- Template:Infobox/法人番号
require('strict')
local p = {}
function p.check(id)
--[[
-- 法人番号の検査を行う
-- 文字列idが法人番号として有効であればtrueを、
-- そうでなければfalseを返す
]]--
id = id:match('^%s*([1-9]%d%d%d%d%d%d%d%d%d%d%d%d)%s*$')
if not id then return false end
local work = 0
for i = 1, 13 do
work = work + tonumber(id:sub(i, i)) * (2 - i % 2)
end
return work % 9 == 0
end
function p.main(frame)
return p.check(frame.args[1] or '') and '' or 'error'
end
return p