Difference between revisions of "Module:Check for unknown parameters"

Jump to navigation Jump to search
(add html comments to make it easier to see the output without disrupting the article)
(add optional regexp match)
 
local res = {}
local regexps = {}
local comments = {}
local commentstr = ''
-- create the list of known args, regular expressions, and the return string
for k, v in pairs(args) do
if type(k) == 'number' then
if (k == 'unknown' and type(v) == 'string') then
unknown = v
elseif (k:match('^regexp[%d]*$') and type(v) == 'string') then
table.insert(regexps, '^' .. v .. '$')
end
end
for k,v in pairs(pargs) do
if (type(k) == 'string' and knownargs[k] == nil) then
local knownflag = nil
if( (not ignoreblank) or (ignoreblank and isnotempty(v)) ) then
for r = 1,#regexps do
if( k:match(regexp[r]) ) then
knownflag = 1
end
end
if( (not knownflag) and (not ignoreblank) or (ignoreblank and isnotempty(v)) ) then
k = mw.ustring.gsub(k, '[^%w\-_ ]', '?')
local r = mw.ustring.gsub(unknown, '_VALUE_', k)