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 10: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