Geen bewerkingssamenvatting
Geen bewerkingssamenvatting
Regel 22: Regel 22:
local str = mw.text.unstrip( frame.args[1] or frame.args.str )
local str = mw.text.unstrip( frame.args[1] or frame.args.str )
local padlength = mw.text.unstrip( frame.args[2] or frame.args.padlength )
local padlength = mw.text.unstrip( frame.args[2] or frame.args.padlength )
local regpattern = "\%d+"
--local regpattern = "\%d+"
local matches = string.match( str, regpattern )
--local matches = string.match( str, regpattern )
local res = string.gsub(
str,
"(%d+)",
function(d) return p.padright( d, 5, '0' ) end
)
if matches == nil
then str = ""
else
for k, v in matches[0] do
        padded = p.padright( v, 5, '0' )
        str:gsub( v, padded )
end
end
--
--
return str
return res
end
end


return p
return p

Versie van 10 aug 2023 11:14

Module:Pad numbers

Summary
Pad numbers in string. The numbers are 10000 and 53430



local p = {}

p.padleft = function( str, len, char )
	if char == nil
		then char = '0'
		end
	char = '0'
	res = string.rep( char, len - #str ) .. str
	return res
end

p.padright = function( str, len, char )
	if char == nil
		then char = '0'
		end
	char = '0'
	res = str .. string.rep( char, len - #str )
	return res
end

function p.main( frame )
	local str = mw.text.unstrip( frame.args[1] or frame.args.str )
	local padlength = mw.text.unstrip( frame.args[2] or frame.args.padlength )
	--local regpattern = "\%d+"
	--local matches = string.match( str, regpattern )
	
	local res = string.gsub( 
		str, 
		"(%d+)", 
		function(d) return p.padright( d, 5, '0' ) end
	)
	
	--
	return res
end

return p