This module extracts very basic numeric data from the input, namely the first match for a contiguous simple number, which may include the negative sign and a decimal, but not (yet) any further complexity, such as exponents, variables, etc.
Its primary function is accepting data like:
70%
margin-left: 20px;
75.485 Khz
and return the numeric portion of it so that it can be operated on arithmetically.Results for each string, respectively:
em
, px
, or %
to the bare-number proportions used by CSS's flex-grow
declaration (only works if the units on all the cells are the same; can't handle a mixture, e.g. of a fixed-width sidebar and relative-width main content area)."
and ;
characters and the like).cellspacing=...
to modern CSS td {padding: ...;}
on all sides.See also: Module:StripToNumbers/testcases.
So: when input is a=70%
use <nowiki>{{#invoke:StripToNumbers|main|1=a=70%}}</nowiki>
→
=
character unless it is escaped as <nowiki>{{=}}</nowiki>
or &equal;
.=
that must be escaped.-
(the keyboard hyphen-minus character, not the formal unicode minus −
, and may contain a decimal; it throws away everything else.1.2.3
or 1-2-3
, nor null; this test may well be redundant code at this point, but better safe than sorry.Feel free to expand it to do more things (and to do what it does more robustly if you find a way to break it). Please report problems on the talk page and ping regular editors of the module. It is safest in most cases to expand by adding functions rather than adding features to the main
function.
=
-style character entities that are numeric (nor their hex equivalents), for obvious reasons, only named ones like &equal;nbsp;
This can be addressed in future upgrade, surely, but should be done in a separate function, as stripping such input down to the ASCII character numbers may well be the desired use in a particular instance.Basic usage:
<nowiki>{{#invoke:StripToNumbers | main | </nowiki>{{var|input}}<nowiki> }}</nowiki>
To divide the resulting value by two:
<nowiki>{{#invoke:StripToNumbers | halve | </nowiki>{{var|input}}<nowiki> }}</nowiki>
Same as main but returns null if no numbers in string, rather than error (can be used as contains numeric function):
<nowiki>{{#invoke:StripToNumbers | mainnull | </nowiki>{{var|input}}<nowiki> }}</nowiki>