Numbers
Number decoders for validating and parsing numeric values.
number
number: Decoder<number> (source)
Accepts only finite numbers (e.g. -3.14, 0, 1, 42, ...). Integers or floats, but not NaN
or Infinity.
| Input | Result |
|---|---|
| 123 | |
| -3.14 | |
| Infinity ^^^^^^^^ Number must be finite | |
| NaN ^^^ Number must be finite | |
| "not a number" ^^^^^^^^^^^^^^ Must be number |
integer
integer: Decoder<number> (source)
Accepts only integers (e.g. ..., -2, -1, 0, 1, 2, ...). Whole numbers, and finite.
| Input | Result |
|---|---|
| 123 | |
| -3.14 ^^^^^ Number must be an integer | |
| Infinity ^^^^^^^^ Number must be finite | |
| NaN ^^^ Number must be finite | |
| "not a integer" ^^^^^^^^^^^^^^^ Must be number |
nonNegativeNumber
nonNegativeNumber: Decoder<number> (source)
positiveNumber: Decoder<number> deprecatedRenamed to nonNegativeNumber in 2.11, since it includes 0.
Available since 2.11.
Accepts only non-negative numbers (e.g. 0, 0.5, 1, 3.14, ...). Integers or floats, >= 0, and finite.
| Input | Result |
|---|---|
| 123 | |
| 3.14 | |
| 0 | |
| -42 ^^^ Number must be positive | |
| Infinity ^^^^^^^^ Number must be finite | |
| NaN ^^^ Number must be finite | |
| "not a number" ^^^^^^^^^^^^^^ Must be number | |
| 0 ^ Number must be positive |
natural
natural: Decoder<number> (source)
positiveInteger: Decoder<number> deprecatedRenamed to natural in 2.11, since it includes 0.
Available since 2.11.
Accepts only the natural numbers (e.g. 0, 1, 2, 3, ...). Whole numbers, >= 0, and finite.
| Input | Result |
|---|---|
| 123 | |
| 0 | |
| -3 ^^ Number must be positive | |
| 3.14 ^^^^ Number must be an integer | |
| Infinity ^^^^^^^^ Number must be finite | |
| NaN ^^^ Number must be finite | |
| "not a number" ^^^^^^^^^^^^^^ Must be number | |
| 0 ^ Number must be positive |
anyNumber
anyNumber: Decoder<number> (source)
Accepts any valid number value.
This also accepts special values like NaN and Infinity. Unless you want to
deliberately accept those, you'll likely want to use the number decoder instead.
| Input | Result |
|---|---|
| 123 | |
| -3.14 | |
| Infinity | |
| NaN | |
| "not a number" ^^^^^^^^^^^^^^ Must be number |
bigint
bigint: Decoder<bigint> (source)
Accepts any valid bigint value.
| Input | Result |
|---|---|
| 123n | |
| -4543000000n | |
| 123 ^^^ Must be bigint | |
| -3.14 ^^^^^ Must be bigint | |
| Infinity ^^^^^^^^ Must be bigint | |
| NaN ^^^ Must be bigint | |
| "not a number" ^^^^^^^^^^^^^^ Must be bigint |
Limiting number ranges
function min( min: number, decoder?: Decoder<number> ): Decoder<number> (source)
function max( max: number, decoder?: Decoder<number> ): Decoder<number> (source)
function between( min: number, max: number, decoder?: Decoder<number> ): Decoder<number> (source)
Available since 2.9.
Rejects values outside the given bounds. Bounds are inclusive. Defaults to the number
decoder if none is provided.
| Input | min | max | between |
|---|---|---|---|
| 42 | 42 | 42 | |
| 3.141592653589793 | 3.141592653589793 | 3.141592653589793 | |
| 100 | 100 | 100 | |
| -1 ^^ Too low, must be at least 0 | -1 | -1 ^^ Too low, must be between 0 and 100 | |
| 123 | 123 ^^^ Too high, must be at most 100 | 123 ^^^ Too high, must be between 0 and 100 |
You can pass integer as the number decoder to use to further restrict what kind of
numbers are accepted:
| Input | between(1, 100) | between(1, 100, integer) |
|---|---|---|
| 5 | 5 | |
| 3.14 | 3.14 ^^^^ Number must be an integer | |
| 314.1592653589793 ^^^^^^^^^^^^^^^^^ Too high, must be between 1 and 100 | 314.1592653589793 ^^^^^^^^^^^^^^^^^ Number must be an integer |