Module:Addcommas

-- -- -- Implements -- local libraryUtil = require('libraryUtil') local p = {}

-- -- main function -- keep public so it can be used in other modules -- function p._add(arg) libraryUtil.checkTypeMulti('Module:Addcommas._add', 1, arg, {'number', 'string'}) local lang = mw.language.getContentLanguage if type(arg) == 'number' then return lang:formatNum(arg) else local z = tostring(arg) -- strip any existing commas z = z:gsub(',', '') local y = mw.text.split(z, '[%-–]') local x	   -- 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 end

-- -- strips any existing commas in the input -- function p._strip(str) libraryUtil.checkType('Module:Addcommas._strip', 1, str, 'string') return str:gsub(',', '') end

function p.commas (frame) local str = frame:getParent.args[1] return p._add(str) end

return p --