Geen bewerkingssamenvatting
Geen bewerkingssamenvatting
Regel 20: Regel 20:


function p.main( frame )
function p.main( frame )
str = mw.text.unstrip(frame.args[1]) or mw.text.unstrip(frame.args.str)
local str = mw.text.unstrip( frame.args[1] or frame.args.str )
padlength = mw.text.unstrip(frame.args[2]) or mw.text.unstrip(frame.args.padlength)
local padlength = mw.text.unstrip( frame.args[2] or frame.args.padlength )
regpattern = "!\d+!"
local regpattern = "!\d+!"
local matches = string.match( str, regpattern )
matches = string.match( str, regpattern )
if matches == nil
if matches == nil
then str = ""
then str = ""

Versie van 10 aug 2023 09:08

Module:Pad numbers

Summary
Pad numbers in string.



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 )
	
	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
end

return p