Modul:Norsk format

Frå Wikipedia – det frie oppslagsverket

Dokumentasjon for modulen kan opprettast på Modul:Norsk format/dok


local utdata = {}

function utdata.hovud(frame)
	local tekst = frame:getParent().args[1]
	local resultat = tekst
	
	-- hardt mellomrom før prosent- og promilleteikn
	resultat = mw.ustring.gsub(resultat, '(%d)[ ]*%%', '%1 %') 
	resultat = mw.ustring.gsub(resultat, '(%d)[ ]*‰', '%1 ‰')

	tal = mw.ustring.gmatch(resultat, '(%d[0-9., ]+%d)') -- finn alle tal og formater dei

	for talet in tal do
		formatert = talet
		if formatert:find('%.') then -- tolk punktum som tusentalsskiljeteikn (1.000 = 1000) og set inn harde mellomrom
			formatert = mw.ustring.gsub(formatert, '%.', ' ')
		else -- nytt innbygd talformateringsfunksjon 
			tilpassaSkiljeteikn = talet:gsub(',', '.'):gsub(' ', '')
			formatert = mw.language.new('nn'):formatNum(tonumber(tilpassaSkiljeteikn))
		end
		resultat = mw.ustring.gsub(resultat, talet, formatert)
	end
	
	return resultat
end

return utdata