Geen bewerkingssamenvatting
Geen bewerkingssamenvatting
Regel 27: Regel 27:


function p.main( frame )
function p.main( frame )
if str == nil then
return ""
end
local str = mw.text.unstrip( frame.args[1] )
local str = mw.text.unstrip( frame.args[1] )
local padlength = mw.text.unstrip( frame.args[2] ) or 5
if frame.args[2] == nil then
if str == nil
local padlength = 5
then res = ""
else
local padlength = mw.text.unstrip( frame.args[2] )
end
end
local res = string.gsub(
local res = string.gsub(
str,  
str,  

Versie van 10 aug 2023 13:23

Module:Pad numbers

Summary
Pad numbers in string.



--[[
Method for replacing numerical sequences in string with zero-padded equivalents
]]--

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

--[[
Not currently used
]]--
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 )
	if str == nil then 
		return ""
	end
	local str = mw.text.unstrip( frame.args[1] )
	if frame.args[2] == nil then
		local padlength = 5
	else
		local padlength = mw.text.unstrip( frame.args[2] )
	end
	
	local res = string.gsub(
		str, 
		"(%d+)", 
		function(d) return p.padleft( d, padlength, '0' ) end
	)
	return res
end

return p