String
Example
Section titled “Example”import * as p from '@vbudovski/paseri';
const schema = p.string();const data = 'foo';
const result = schema.safeParse(data);if (result.ok) { // result.value typed as `string`.}
Playground
Section titled “Playground”Validators
Section titled “Validators”Consists of at least length
characters.
p.string().min(3);
Consists of at most length
characters.
p.string().max(3);
length
Section titled “length”Consists of exactly length
characters.
p.string().length(3);
A valid email address.
p.string().email();
A valid emoji character.
p.string().emoji();
A valid UUID 🔗.
p.string().uuid();
nanoid
Section titled “nanoid”A valid Nano ID 🔗.
p.string().nanoid();
includes
Section titled “includes”Contains the searchString
.
p.string().includes('foo');
startsWith
Section titled “startsWith”Starts with the searchString
.
p.string().startsWith('foo');
endsWith
Section titled “endsWith”Ends with the searchString
.
p.string().endsWith('foo');
A valid ISO 8601 🔗 date string YYYY-MM-DD
.
p.string().date();
A valid ISO 8601 🔗 time string hh:mm:ss[.s+]
.
p.string().time();
You can require a fixed precision by setting the precision
option.
p.string().time({ precision: 3 });// 01:02:03.123 ✅// 01:02:03.1234 ❌
datetime
Section titled “datetime”A valid ISO 8601 🔗 UTC datetime string YYYY-MM-DDThh:mm:ss[.s+]Z
.
p.string().datetime();
You can require a fixed precision by setting the precision
option.
p.string().datetime({ precision: 3 });// 2020-01-02T01:02:03.123Z ✅// 2020-01-02T01:02:03.1234Z ❌
Non-UTC offsets are accepted by setting the offset
option.
p.string().datetime({ offset: true });// 2020-01-02T01:02:03.123Z ✅// 2020-01-02T01:02:03.123+02:30 ✅// 2020-01-02T01:02:03.123-0430 ✅// 2020-01-02T01:02:03.123 ❌
Offset-less (naïve) values are accepted by setting the local
option.
p.string().datetime({ local: true });// 2020-01-02T01:02:03.123Z ✅// 2020-01-02T01:02:03.123 ✅
A valid IPv4 🔗 or IPv6 🔗 address.
p.string().ip();// 127.0.0.1 ✅// ::1 ✅
The protocol version can be restricted.
p.string().ip({ version: 4 });// 127.0.0.1 ✅// ::1 ❌
A valid IP address range in CIDR 🔗 notation.
p.string().cidr();// 127.0.0.0/8 ✅// ::1/128 ✅
The protocol version can be restricted.
p.string().cidr({ version: 4 });// 127.0.0.0/8 ✅// ::1/128 ❌
Matches the provided regex
.
p.string().regex(/^a+$/);// aaa ✅// aab ❌