Geen bewerkingssamenvatting |
Geen bewerkingssamenvatting |
||
| Regel 5: | Regel 5: | ||
local p = {} | local p = {} | ||
p.padleft = function( str, | p.padleft = function( str, length, char ) | ||
if char == nil | if char == nil | ||
then char = '0' | then char = '0' | ||
end | end | ||
char = '0' | char = '0' | ||
res = string.rep( char, | res = string.rep( char, length - #str ) .. str | ||
return res | return res | ||
end | end | ||
| Regel 30: | Regel 30: | ||
return "" | return "" | ||
end | end | ||
str = mw.text.unstrip( frame.args[1] ) | |||
if frame.args[2] == nil then | if frame.args[2] == nil then | ||
padlength = 5 | |||
else | else | ||
padlength = mw.text.unstrip( frame.args[2] ) | |||
end | end | ||
local res = string.gsub( | local res = string.gsub( | ||
str, | str, | ||
"(%d+)", | "(%d+)", | ||
function(d) return p.padleft( d, padlength, '0' ) end | function(d) return p.padleft( d, padlength, '0' ) end | ||
) | ) | ||
Versie van 10 aug 2023 13:26
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
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 = string.gsub(
str,
"(%d+)",
function(d) return p.padleft( d, padlength, '0' ) end
)
return res
end
return p
