モジュール:法人番号検査
ナビゲーションに移動
検索に移動
![]() | Luaモジュールを使用しています: |
このモジュールは、与えられた番号が法人番号として適切かどうかを検査します。番号が13桁の数値であり、かつチェックディジット(参考)が合っていれば検査に合格します。
使い方[編集]
#invokeで呼び出す[編集]
{{#invoke:法人番号検査|main|検査対象の番号}}
テンプレートから当モジュールを使用する場合は、上記のようにしてmain関数を呼び出してください。検査に合格すればmain関数は空文字列を返し、不合格であれば文字列のerror
を返します。したがってテンプレート側で#if文や#switch文などを記述すれば、合格の場合と不合格の場合で処理を分けることができます。
他のモジュールから使用する[編集]
local result = require('モジュール:法人番号検査').check(id) -- idは検査対象の番号
他のモジュールから当モジュールを利用する場合は、check関数を呼び出すことで検査を行えます。check関数は第1引数に渡された値(文字列型である必要があります)について検査を行い、検査に合格すればブール値のtrue
を返し、不合格であればブール値のfalse
を返します。
関連項目[編集]
- Category:法人番号に誤りがあるページ - 当モジュールを使用しているテンプレートによって付与される追跡カテゴリ
- モジュール:Check isxn
require('モジュール:No globals')
local function _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 temp = 0
for i, v in ipairs{ id:byte(1, 13) } do
temp = temp + tonumber(string.char(v)) * (2 - i % 2)
end
return temp % 9 == 0
end
return {
check = function(id)
require('libraryUtil').checkType('check', 1, id, 'string')
return _check(id)
end,
main = function(frame)
return _check(frame.args[1] or '') and '' or 'error'
end
}