Geen bewerkingssamenvatting |
Geen bewerkingssamenvatting |
||
| (Een tussenliggende versie door dezelfde gebruiker niet weergegeven) | |||
| Regel 22: | Regel 22: | ||
function p.mainnull(frame) | function p.mainnull(frame) | ||
local theString = mw.text.unstrip(frame.args[1]) | local theString = mw.text.unstrip(frame.args[1]) | ||
local fallback = | local fallback = frame.args[2] | ||
local onlyNumber | local onlyNumber | ||
onlyNumber = (string.match(theString, "%-?[%d%.]+")) | onlyNumber = (string.match(theString, "%-?[%d%.]+")) | ||
checkedNumber = tonumber(onlyNumber) | checkedNumber = tonumber(onlyNumber) | ||
if checkedNumber == nil then | if checkedNumber == nil then | ||
return fallback | if fallback == nil then | ||
return nil | |||
else | |||
return mw.text.unstrip(fallback) | |||
end | |||
else | else | ||
return checkedNumber | return checkedNumber | ||
Huidige versie van 25 jan 2023 19:43
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
