Geen bewerkingssamenvatting |
Geen bewerkingssamenvatting |
||
| (4 tussenliggende versies door dezelfde gebruiker niet weergegeven) | |||
| 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 23: | Regel 23: | ||
char = '0' | char = '0' | ||
res = str .. string.rep( char, len - #str ) | 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 | return res | ||
end | end | ||
function p.main( frame ) | function p.main( frame ) | ||
if | if frame.args[1] == nil then | ||
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 = | local res = p.replaceNumbers( str, padlength ) | ||
return res | return res | ||
end | end | ||
return p | return p | ||
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
