Module:Addcommas
Jump to navigation
Jump to search
Documentation for this module may be created at Module:Addcommas/doc
--[[
{{Helper module|name=Addcommas
|fname1=_add(arg)
|ftype1=Number
|fuse1=Formats the number arg with commas
|fname2=_strip(arg)
|ftype2=Number
|fuse2=Removes all commas from arg
}}
--]]
-- <nowiki>
--
-- Implements {{Addcommas}}
--
local p = {}
--
-- main function
-- keep public so it can be used in other modules
--
function p._add( arg )
local lang = mw.language.getContentLanguage()
local z = tostring( arg )
local y = mw.text.split( z, '[%-–]' )
local x
-- strip any existing commas
z = z:gsub( ',', '' )
-- handle ranges as separate numbers
-- required by [[Module:Exchange]] (p._table)
if y[1] ~= '' and y[2] then
y[1] = tonumber( y[1] )
y[2] = tonumber( y[2] )
x = lang:formatNum( y[1] ) .. '–' .. lang:formatNum( y[2] )
else
x = lang:formatNum( tonumber( z ) )
end
return x
end
--
-- strips any existing commas in the input
--
function p._strip( str )
str = tostring( str )
return str:gsub( ',', '' )
end
function p.commas ( frame )
local str = frame:getParent().args[1]
return p._add( str )
end
return p