Module:StripToNumbers
Summary
Example: fetch first number:
"sdfsdf 23.56 sdfsdf 33" (using main) => 23.56
"text without number" (using mainnull, with fallback text) => No number foundlocal 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(" Input did not contain valid numeric 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 fallback = frame.args[2]
local onlyNumber
onlyNumber = (string.match(theString, "%-?[%d%.]+"))
checkedNumber = tonumber(onlyNumber)
if checkedNumber == nil then
if fallback == nil then
return nil
else
return mw.text.unstrip(fallback)
end
else
return checkedNumber
end
end
return p
