Přeskočit na obsah

Modul:StripToNumbers

Z Wikizdrojů, volně dostupné knihovny

Modul ze zadaného řetězce ponechá pouze první číselnou část.

  • 123Nazdar -> 123
  • 75.485 Khz -> 75.485
  • margin-left: 20px; -> 20

Použití:

[editovat]

{{#invoke:StripToNumbers | parametr | vstup }}

kde parametr může být

  • main standardní použití
  • halve výsledek dělený dvěma
  • mainnull v případě vstupu bez čísel dá prázdný výledek místo chybu

local p = {}
function p.main(frame)
	local theString = mw.text.unstrip(frame.args[1])
	local onlyNumber
	onlyNumber = (string.match(theString, "%-?[%d%.]+"))
	checkedNumber = tonumber(onlyNumber)
	if checkedNumber == nil then
		error(" Neobsahuje numerická data")
	else
		return checkedNumber
	end
end

function p.halve(frame)
	local checkedNumber = (p.main(frame))
	local halvedNumber
	halvedNumber = (checkedNumber / 2)
	return halvedNumber
end
function p.mainnull(frame)
	local theString = mw.text.unstrip(frame.args[1])
	local onlyNumber
	onlyNumber = (string.match(theString, "%-?[%d%.]+"))
	checkedNumber = tonumber(onlyNumber)
	if checkedNumber == nil then
		return nil
	else
		return checkedNumber
	end
end
return p