Geen bewerkingssamenvatting
Geen bewerkingssamenvatting
 
Regel 24: Regel 24:
res = str .. string.rep( char, len - #str )
res = str .. string.rep( char, len - #str )
return res
return res
end
p.strip_diacrits = function(wrd)
if not wrd or wrd == "" then return "" end
for ch in mw.ustring.gmatch(wrd, "%a") do
if char_idx[ch] then
wrd = wrd:gsub(ch, char_idx[ch])
end
end
return wrd
end
end


p.replaceNumbers = function( str, padlength )
p.replaceNumbers = function( str, padlength )
if not str or str == "" then return "" end
local res = string.gsub(
local res = string.gsub(
str,
str,

Huidige versie van 10 aug 2023 13:38

Module:Pad numbers

Summary
Pad numbers in string. The numbers are 0000001 and 0005343



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

local p = {}

p.padleft = function( str, length, char )
	if char == nil
		then char = '0'
		end
	char = '0'
	res = string.rep( char, length - #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

p.replaceNumbers = function( str, padlength )
	if not str or str == "" then return "" end
	local res = string.gsub(
		str,
		"(%d+)",
		function(d) return p.padleft( d, padlength, '0' ) end
	)
	return res
end

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

return p