-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrules.html
More file actions
213 lines (211 loc) Β· 151 KB
/
rules.html
File metadata and controls
213 lines (211 loc) Β· 151 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Rules | Robust Validator</title>
<meta name="description" content="Rule-based data validation library in JavaScript. It's extendable, function-oriented, and i18n supported.">
<meta name="generator" content="VitePress v1.6.3">
<link rel="preload stylesheet" href="/assets/style.BH_8qREQ.css" as="style">
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
<script type="module" src="/assets/app.B_UN5ady.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/theme.BSK7ghZt.js">
<link rel="modulepreload" href="/assets/chunks/framework.L8ryr_Zo.js">
<link rel="modulepreload" href="/assets/rules.md.BT0ogGfs.lean.js">
<meta property="og:url" content="https://validator.axe-api.com">
<meta property="og:type" content="website">
<meta property="og:title" content="Robust Validator">
<meta property="og:description" content="Rule-based data validation library in JavaScript. It's extendable, function-oriented, and i18n supported.">
<meta property="og:image" content="https://validator.axe-api.com/og.png">
<meta name="twitter:card" content="summary_large_image">
<meta property="twitter:domain" content="validator.axe-api.com">
<meta property="twitter:url" content="https://validator.axe-api.com">
<meta name="twitter:title" content="Robust Validator">
<meta name="twitter:description" content="Rule-based data validation library in JavaScript. It's extendable, function-oriented, and i18n supported.">
<meta name="twitter:image" content="https://validator.axe-api.com/og.png">
<link rel="stylesheet" href="/cookieconsent.css">
<script defer src="/init.js"></script>
<script type="text/plain" data-category="analytics" async data-src="https://www.googletagmanager.com/gtag/js?id=G-67G9G0VBCC"></script>
<script type="text/plain" data-category="analytics">
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-67G9G0VBCC', { anonymize_ip: true });
</script>
<script id="check-dark-mode">document.documentElement.classList.add("dark");</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-d8b57b2d><!--[--><!--]--><!--[--><span tabindex="-1" data-v-fcbfc0e0></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-fcbfc0e0>Skip to content</a><!--]--><!----><header class="VPNav" data-v-d8b57b2d data-v-7ad780c2><div class="VPNavBar" data-v-7ad780c2 data-v-9fd4d1dd><div class="wrapper" data-v-9fd4d1dd><div class="container" data-v-9fd4d1dd><div class="title" data-v-9fd4d1dd><div class="VPNavBarTitle has-sidebar" data-v-9fd4d1dd data-v-9f43907a><a class="title" href="/" data-v-9f43907a><!--[--><!--]--><!----><span data-v-9f43907a>Robust Validator</span><!--[--><!--]--></a></div></div><div class="content" data-v-9fd4d1dd><div class="content-body" data-v-9fd4d1dd><!--[--><!--]--><div class="VPNavBarSearch search" data-v-9fd4d1dd><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-9fd4d1dd data-v-afb2845e><span id="main-nav-aria-label" class="visually-hidden" data-v-afb2845e> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/blog.html" tabindex="0" data-v-afb2845e data-v-815115f5><!--[--><span data-v-815115f5>Blog</span><!--]--></a><!--]--><!--]--></nav><!----><!----><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-9fd4d1dd data-v-ef6192dc data-v-e71e869c><!--[--><a class="VPSocialLink no-icon" href="https://github.com/axe-api/validator" aria-label="github" target="_blank" rel="noopener" data-v-e71e869c data-v-60a9a2d3><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-9fd4d1dd data-v-f953d92f data-v-bfe7971f><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-bfe7971f><span class="vpi-more-horizontal icon" data-v-bfe7971f></span></button><div class="menu" data-v-bfe7971f><div class="VPMenu" data-v-bfe7971f data-v-20ed86d6><!----><!--[--><!--[--><!----><!----><div class="group" data-v-f953d92f><div class="item social-links" data-v-f953d92f><div class="VPSocialLinks social-links-list" data-v-f953d92f data-v-e71e869c><!--[--><a class="VPSocialLink no-icon" href="https://github.com/axe-api/validator" aria-label="github" target="_blank" rel="noopener" data-v-e71e869c data-v-60a9a2d3><span class="vpi-social-github"></span></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-9fd4d1dd data-v-6bee1efd><span class="container" data-v-6bee1efd><span class="top" data-v-6bee1efd></span><span class="middle" data-v-6bee1efd></span><span class="bottom" data-v-6bee1efd></span></span></button></div></div></div></div><div class="divider" data-v-9fd4d1dd><div class="divider-line" data-v-9fd4d1dd></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-d8b57b2d data-v-2488c25a><div class="container" data-v-2488c25a><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-2488c25a><span class="vpi-align-left menu-icon" data-v-2488c25a></span><span class="menu-text" data-v-2488c25a>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-2488c25a data-v-6b867909><button data-v-6b867909>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-d8b57b2d data-v-42c4c606><div class="curtain" data-v-42c4c606></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-42c4c606><span class="visually-hidden" id="sidebar-aria-label" data-v-42c4c606> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-51288d80><section class="VPSidebarItem level-0" data-v-51288d80 data-v-0009425e><div class="item" role="button" tabindex="0" data-v-0009425e><div class="indicator" data-v-0009425e></div><h2 class="text" data-v-0009425e>Introduction</h2><!----></div><div class="items" data-v-0009425e><!--[--><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/purpose.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Purpose</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/getting-started.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Getting started</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/examples.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Examples</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/terminology.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Terminology</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-51288d80><section class="VPSidebarItem level-0 has-active" data-v-51288d80 data-v-0009425e><div class="item" role="button" tabindex="0" data-v-0009425e><div class="indicator" data-v-0009425e></div><h2 class="text" data-v-0009425e>Reference</h2><!----></div><div class="items" data-v-0009425e><!--[--><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rules.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Rules</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/i18n.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>i18n</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/customization.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Customization</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/options.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Options</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-d8b57b2d data-v-9a6c75ad><div class="VPDoc has-sidebar has-aside" data-v-9a6c75ad data-v-e6f2a212><!--[--><!--]--><div class="container" data-v-e6f2a212><div class="aside" data-v-e6f2a212><div class="aside-curtain" data-v-e6f2a212></div><div class="aside-container" data-v-e6f2a212><div class="aside-content" data-v-e6f2a212><div class="VPDocAside" data-v-e6f2a212 data-v-cb998dce><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-cb998dce data-v-f610f197><div class="content" data-v-f610f197><div class="outline-marker" data-v-f610f197></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-f610f197>On this page</div><ul class="VPDocOutlineItem root" data-v-f610f197 data-v-53c99d69><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-cb998dce></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-e6f2a212><div class="content-container" data-v-e6f2a212><!--[--><!--]--><main class="main" data-v-e6f2a212><div style="position:relative;" class="vp-doc _rules" data-v-e6f2a212><div><h1 id="rules" tabindex="-1">Rules <a class="header-anchor" href="#rules" aria-label="Permalink to "Rules"">β</a></h1><p>In this section, you can find the truth tables for all validation rules.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>You can learn more about the <a href="/terminology.html#rule">Rule Terminology</a>.</p></div><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>Each rule function should validate only one thing. For example, the <code>email</code> validation <strong>should NOT</strong> check if the data is provided. Otherwise, a rule function can not check the optional data.</p><p>That's why <code>null</code> and <code>undefined</code> values are acceptable for all rules except the <code>required</code>.</p><p>If you want to check if the data is provided and is a valid email, you should use two rules (<code>required</code>, <code>email</code>) at the same time.</p></div><h2 id="accepted" tabindex="-1"><code>accepted</code> <a class="header-anchor" href="#accepted" aria-label="Permalink to "`accepted`"">β</a></h2><p>The field under validation must be <code>yes</code>, <code>on</code>, <code>1</code> or <code>true</code>. This is useful for validating "Terms of Service" acceptance.</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-nVzem" id="tab-WmbJPRs" checked><label data-title="Declarative" for="tab-WmbJPRs">Declarative</label><input type="radio" name="group-nVzem" id="tab-tE-U59Z"><label data-title="Function-based" for="tab-tE-U59Z">Function-based</label><input type="radio" name="group-nVzem" id="tab-zp5Kw6h"><label data-title="Direct usage" for="tab-zp5Kw6h">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { terms: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"accepted"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, accepted } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { terms: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">accepted</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isAccepted } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isAccepted</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"your-value"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th>Is valid?</th></tr></thead><tbody><tr><td><code>accepted</code></td><td><code>null</code></td><td>π΄</td></tr><tr><td><code>accepted</code></td><td><code>undefined</code></td><td>π΄</td></tr><tr><td><code>accepted</code></td><td><code>'yes'</code></td><td>π’</td></tr><tr><td><code>accepted</code></td><td><code>'on'</code></td><td>π’</td></tr><tr><td><code>accepted</code></td><td><code>1</code></td><td>π’</td></tr><tr><td><code>accepted</code></td><td><code>true</code></td><td>π’</td></tr><tr><td><code>accepted</code></td><td><code>john</code></td><td>π΄</td></tr><tr><td><code>accepted</code></td><td><code>3.14</code></td><td>π΄</td></tr></tbody></table><h2 id="after-date" tabindex="-1"><code>after:date</code> <a class="header-anchor" href="#after-date" aria-label="Permalink to "`after:date`"">β</a></h2><p>The field under validation must be after the given date.</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-4h-vM" id="tab-Rp5DPqk" checked><label data-title="Declarative" for="tab-Rp5DPqk">Declarative</label><input type="radio" name="group-4h-vM" id="tab-8TkIMXP"><label data-title="Function-based" for="tab-8TkIMXP">Function-based</label><input type="radio" name="group-4h-vM" id="tab-d9dfaLF"><label data-title="Direct usage" for="tab-d9dfaLF">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { startAt: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"after:2023-01-01"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, after } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { startAt: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">after</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"2023-01-01"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isAfter } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isAfter</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"your-value"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"2023-01-01"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>robust-validator library uses the <a href="https://date-fns.org" target="_blank" rel="noreferrer">date-fns</a> for the date validations.</p><p>You can check the possible date formats <a href="https://date-fns.org/v4.1.0/docs/format" target="_blank" rel="noreferrer">here</a>.</p></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th><code>startAt</code></th><th>Is valid?</th></tr></thead><tbody><tr><td><code>after:2024-01-01</code></td><td><code>null</code></td><td></td><td>π΄</td></tr><tr><td><code>after:2024-01-01</code></td><td><code>undefined</code></td><td></td><td>π΄</td></tr><tr><td><code>after:2024-01-01</code></td><td><code>2025-01-01</code></td><td></td><td>π’</td></tr><tr><td><code>after:startAt</code></td><td><code>2025-01-01</code></td><td><code>2024-01-01</code></td><td>π’</td></tr><tr><td><code>after:startAt</code></td><td><code>2024-01-01</code></td><td><code>2024-01-01</code></td><td>π΄</td></tr><tr><td><code>after:startAt</code></td><td><code>2024-01-01</code></td><td><code>2025-01-01</code></td><td>π΄</td></tr><tr><td><code>after:2024-01-01</code></td><td><code>2024-01-01</code></td><td></td><td>π΄</td></tr><tr><td><code>after:2024-01-01</code></td><td><code>2020-01-01</code></td><td></td><td>π΄</td></tr></tbody></table><h2 id="after-or-equal-date" tabindex="-1"><code>after_or_equal:date</code> <a class="header-anchor" href="#after-or-equal-date" aria-label="Permalink to "`after_or_equal:date`"">β</a></h2><p>The field unter validation must be after or equal to the given field</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-Mc3kq" id="tab-AXpspSB" checked><label data-title="Declarative" for="tab-AXpspSB">Declarative</label><input type="radio" name="group-Mc3kq" id="tab-IXIuDM8"><label data-title="Function-based" for="tab-IXIuDM8">Function-based</label><input type="radio" name="group-Mc3kq" id="tab--1tsl5c"><label data-title="Direct usage" for="tab--1tsl5c">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { startAt: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"after_or_equal:2023-01-01"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, afterOrEqual } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { startAt: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">afterOrEqual</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"2023-01-01"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isAfterOrEqual } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isAfterOrEqual</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"your-value"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"2023-01-01"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>robust-validator library uses the <a href="https://date-fns.org" target="_blank" rel="noreferrer">date-fns</a> for the date validations.</p><p>You can check the possible date formats <a href="https://date-fns.org/v4.1.0/docs/format" target="_blank" rel="noreferrer">here</a>.</p></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th><code>startAt</code></th><th>Is valid?</th></tr></thead><tbody><tr><td><code>after_or_equal:2024-01-01</code></td><td><code>null</code></td><td></td><td>π΄</td></tr><tr><td><code>after_or_equal:2024-01-01</code></td><td><code>undefined</code></td><td></td><td>π΄</td></tr><tr><td><code>after_or_equal:2024-01-01</code></td><td><code>2025-01-01</code></td><td></td><td>π’</td></tr><tr><td><code>after_or_equal:2024-01-01</code></td><td><code>2024-01-01</code></td><td></td><td>π’</td></tr><tr><td><code>after_or_equal:startAt</code></td><td><code>2025-01-01</code></td><td><code>2024-01-01</code></td><td>π’</td></tr><tr><td><code>after_or_equal:startAt</code></td><td><code>2024-01-01</code></td><td><code>2024-01-01</code></td><td>π’</td></tr><tr><td><code>after_or_equal:startAt</code></td><td><code>2024-01-01</code></td><td><code>2025-01-01</code></td><td>π΄</td></tr><tr><td><code>after_or_equal:2024-01-01</code></td><td><code>2020-01-01</code></td><td></td><td>π΄</td></tr></tbody></table><h2 id="alpha" tabindex="-1"><code>alpha</code> <a class="header-anchor" href="#alpha" aria-label="Permalink to "`alpha`"">β</a></h2><p>The field under validation must be entirely alphabetic characters.</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-cTtKC" id="tab-89bqp_R" checked><label data-title="Declarative" for="tab-89bqp_R">Declarative</label><input type="radio" name="group-cTtKC" id="tab-HbzdjLh"><label data-title="Function-based" for="tab-HbzdjLh">Function-based</label><input type="radio" name="group-cTtKC" id="tab-UAhr3tm"><label data-title="Direct usage" for="tab-UAhr3tm">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { username: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"alpha"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, alpha } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { username: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">alpha</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isAlpha } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isAlpha</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"your-value"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th>Is valid?</th></tr></thead><tbody><tr><td><code>alpha</code></td><td><code>null</code></td><td>π΄</td></tr><tr><td><code>alpha</code></td><td><code>undefined</code></td><td>π΄</td></tr><tr><td><code>alpha</code></td><td><code>john</code></td><td>π’</td></tr><tr><td><code>alpha</code></td><td><code>john123</code></td><td>π΄</td></tr><tr><td><code>alpha</code></td><td><code>john-doe</code></td><td>π΄</td></tr><tr><td><code>alpha</code></td><td><code>123</code></td><td>π΄</td></tr><tr><td><code>alpha</code></td><td><code>3.14</code></td><td>π΄</td></tr><tr><td><code>alpha</code></td><td><code>true</code></td><td>π΄</td></tr></tbody></table><h2 id="alpha-dash" tabindex="-1"><code>alpha_dash</code> <a class="header-anchor" href="#alpha-dash" aria-label="Permalink to "`alpha_dash`"">β</a></h2><p>The field under validation may have alpha-numeric characters, as well as dashes and underscores.</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-lRD4_" id="tab-f2OALYY" checked><label data-title="Declarative" for="tab-f2OALYY">Declarative</label><input type="radio" name="group-lRD4_" id="tab-TmDVkHL"><label data-title="Function-based" for="tab-TmDVkHL">Function-based</label><input type="radio" name="group-lRD4_" id="tab-vLnebh3"><label data-title="Direct usage" for="tab-vLnebh3">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { username: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"alpha_dash"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, alphaDash } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { username: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">alphaDash</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isAlphaDash } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isAlphaDash</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"your-value"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th>Is valid?</th></tr></thead><tbody><tr><td><code>alpha_dash</code></td><td><code>null</code></td><td>π΄</td></tr><tr><td><code>alpha_dash</code></td><td><code>undefined</code></td><td>π΄</td></tr><tr><td><code>alpha_dash</code></td><td><code>john</code></td><td>π’</td></tr><tr><td><code>alpha_dash</code></td><td><code>john-doe</code></td><td>π’</td></tr><tr><td><code>alpha_dash</code></td><td><code>john_doe</code></td><td>π’</td></tr><tr><td><code>alpha_dash</code></td><td><code>john123</code></td><td>π΄</td></tr><tr><td><code>alpha_dash</code></td><td><code>123</code></td><td>π΄</td></tr><tr><td><code>alpha_dash</code></td><td><code>3.14</code></td><td>π΄</td></tr><tr><td><code>alpha_dash</code></td><td><code>true</code></td><td>π΄</td></tr></tbody></table><h2 id="alpha-num" tabindex="-1"><code>alpha_num</code> <a class="header-anchor" href="#alpha-num" aria-label="Permalink to "`alpha_num`"">β</a></h2><p>The field under validation must be entirely alpha-numeric characters.</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-R4uV3" id="tab-R_45TNW" checked><label data-title="Declarative" for="tab-R_45TNW">Declarative</label><input type="radio" name="group-R4uV3" id="tab-hIsW689"><label data-title="Function-based" for="tab-hIsW689">Function-based</label><input type="radio" name="group-R4uV3" id="tab-Tktnq9i"><label data-title="Direct usage" for="tab-Tktnq9i">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { username: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"alpha_num"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, alphaNum } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { username: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">alphaNum</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isAlphaNum } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isAlphaNum</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"your-value"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th>Is valid?</th></tr></thead><tbody><tr><td><code>alpha_num</code></td><td><code>null</code></td><td>π΄</td></tr><tr><td><code>alpha_num</code></td><td><code>undefined</code></td><td>π΄</td></tr><tr><td><code>alpha_num</code></td><td><code>john</code></td><td>π’</td></tr><tr><td><code>alpha_num</code></td><td><code>john123</code></td><td>π’</td></tr><tr><td><code>alpha_num</code></td><td><code>john-doe</code></td><td>π΄</td></tr><tr><td><code>alpha_num</code></td><td><code>john_doe</code></td><td>π΄</td></tr><tr><td><code>alpha_num</code></td><td><code>123</code></td><td>π΄</td></tr><tr><td><code>alpha_num</code></td><td><code>3.14</code></td><td>π΄</td></tr><tr><td><code>alpha_num</code></td><td><code>true</code></td><td>π΄</td></tr></tbody></table><h2 id="array" tabindex="-1"><code>array</code> <a class="header-anchor" href="#array" aria-label="Permalink to "`array`"">β</a></h2><p>The field under validation must be an array.</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-d2AUu" id="tab-qGyU81R" checked><label data-title="Declarative" for="tab-qGyU81R">Declarative</label><input type="radio" name="group-d2AUu" id="tab-fXfLDWG"><label data-title="Function-based" for="tab-fXfLDWG">Function-based</label><input type="radio" name="group-d2AUu" id="tab-UtIMDj8"><label data-title="Direct usage" for="tab-UtIMDj8">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { selectedIds: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"array"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, array } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { selectedIds: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">array</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isArray } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isArray</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">([</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">2</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]);</span></span></code></pre></div></div></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th>Is valid?</th></tr></thead><tbody><tr><td><code>array</code></td><td><code>null</code></td><td>π΄</td></tr><tr><td><code>array</code></td><td><code>undefined</code></td><td>π΄</td></tr><tr><td><code>array</code></td><td><code>[]</code></td><td>π’</td></tr><tr><td><code>array</code></td><td><code>[1, 2, 3]</code></td><td>π’</td></tr><tr><td><code>array</code></td><td><code>[{"id": 1}]</code></td><td>π’</td></tr><tr><td><code>array</code></td><td><code>john</code></td><td>π΄</td></tr><tr><td><code>array</code></td><td><code>john</code></td><td>π΄</td></tr><tr><td><code>array</code></td><td><code>123</code></td><td>π΄</td></tr><tr><td><code>array</code></td><td><code>3.14</code></td><td>π΄</td></tr><tr><td><code>array</code></td><td><code>true</code></td><td>π΄</td></tr></tbody></table><h2 id="before-date" tabindex="-1"><code>before:date</code> <a class="header-anchor" href="#before-date" aria-label="Permalink to "`before:date`"">β</a></h2><p>The field under validation must be before the given date.</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-zn0XN" id="tab-bGw6YEn" checked><label data-title="Declarative" for="tab-bGw6YEn">Declarative</label><input type="radio" name="group-zn0XN" id="tab-J6rvNCr"><label data-title="Function-based" for="tab-J6rvNCr">Function-based</label><input type="radio" name="group-zn0XN" id="tab-ZBuLEgm"><label data-title="Direct usage" for="tab-ZBuLEgm">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { startAt: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"before:2023-01-01"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, before } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { startAt: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">before</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"2023-01-01"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isBefore } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isBefore</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"your-value"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"2023-01-01"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>robust-validator library uses the <a href="https://date-fns.org" target="_blank" rel="noreferrer">date-fns</a> for the date validations.</p><p>You can check the possible date formats <a href="https://date-fns.org/v4.1.0/docs/format" target="_blank" rel="noreferrer">here</a>.</p></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th><code>finishAt</code></th><th>Is valid?</th></tr></thead><tbody><tr><td><code>before:2024-01-01</code></td><td><code>null</code></td><td></td><td>π΄</td></tr><tr><td><code>before:2024-01-01</code></td><td><code>undefined</code></td><td></td><td>π΄</td></tr><tr><td><code>before:2024-01-01</code></td><td><code>2023-01-01</code></td><td></td><td>π’</td></tr><tr><td><code>before:finishAt</code></td><td><code>2023-01-01</code></td><td><code>2024-01-01</code></td><td>π’</td></tr><tr><td><code>before:finishAt</code></td><td><code>2023-01-01</code></td><td><code>2023-01-01</code></td><td>π΄</td></tr><tr><td><code>before:finishAt</code></td><td><code>2023-01-01</code></td><td><code>2022-01-01</code></td><td>π΄</td></tr><tr><td><code>before:2024-01-01</code></td><td><code>2024-01-01</code></td><td></td><td>π΄</td></tr><tr><td><code>before:2024-01-01</code></td><td><code>2025-01-01</code></td><td></td><td>π΄</td></tr></tbody></table><h2 id="before-or-equal-date" tabindex="-1"><code>before_or_equal:date</code> <a class="header-anchor" href="#before-or-equal-date" aria-label="Permalink to "`before_or_equal:date`"">β</a></h2><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-vX3JH" id="tab-GFbCZVp" checked><label data-title="Declarative" for="tab-GFbCZVp">Declarative</label><input type="radio" name="group-vX3JH" id="tab-g1Hp6bq"><label data-title="Function-based" for="tab-g1Hp6bq">Function-based</label><input type="radio" name="group-vX3JH" id="tab-2uF2dqk"><label data-title="Direct usage" for="tab-2uF2dqk">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { startAt: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"before_or_equal:2023-01-01"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, beforeOrEqual } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { startAt: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">beforeOrEqual</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"2023-01-01"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isBeforeOrEqual } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isBeforeOrEqual</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"your-value"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"2023-01-01"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><p>The field under validation must be before or equal to the given date.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>robust-validator library uses the <a href="https://date-fns.org" target="_blank" rel="noreferrer">date-fns</a> for the date validations.</p><p>You can check the possible date formats <a href="https://date-fns.org/v4.1.0/docs/format" target="_blank" rel="noreferrer">here</a>.</p></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th><code>finishAt</code></th><th>Is valid?</th></tr></thead><tbody><tr><td><code>before_or_equal:2024-01-01</code></td><td><code>null</code></td><td></td><td>π΄</td></tr><tr><td><code>before_or_equal:2024-01-01</code></td><td><code>undefined</code></td><td></td><td>π΄</td></tr><tr><td><code>before_or_equal:2024-01-01</code></td><td><code>2023-01-01</code></td><td></td><td>π’</td></tr><tr><td><code>before_or_equal:2024-01-01</code></td><td><code>2024-01-01</code></td><td></td><td>π’</td></tr><tr><td><code>before_or_equal:finishAt</code></td><td><code>2023-01-01</code></td><td><code>2024-01-01</code></td><td>π’</td></tr><tr><td><code>before_or_equal:finishAt</code></td><td><code>2023-01-01</code></td><td><code>2023-01-01</code></td><td>π’</td></tr><tr><td><code>before_or_equal:finishAt</code></td><td><code>2023-01-01</code></td><td><code>2022-01-01</code></td><td>π΄</td></tr><tr><td><code>before_or_equal:2024-01-01</code></td><td><code>2025-01-01</code></td><td></td><td>π΄</td></tr></tbody></table><h2 id="between-min-max" tabindex="-1"><code>between:min,max</code> <a class="header-anchor" href="#between-min-max" aria-label="Permalink to "`between:min,max`"">β</a></h2><p>The field under validation must have a size between the given min and max. Strings, and numerics are evaluated in the same fashion as the size rule.</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-NNmfZ" id="tab-X07yFCF" checked><label data-title="Declarative" for="tab-X07yFCF">Declarative</label><input type="radio" name="group-NNmfZ" id="tab-SYSA-cW"><label data-title="Function-based" for="tab-SYSA-cW">Function-based</label><input type="radio" name="group-NNmfZ" id="tab-INUqR3v"><label data-title="Direct usage" for="tab-INUqR3v">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { score: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"between:1,10"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, score } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { score: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">score</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">10</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isBetween } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isBetween</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">10</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th>Is valid?</th></tr></thead><tbody><tr><td><code>between:1,5</code></td><td><code>null</code></td><td>π΄</td></tr><tr><td><code>between:1,5</code></td><td><code>undefined</code></td><td>π΄</td></tr><tr><td><code>between:1,5</code></td><td><code>'john'</code></td><td>π’</td></tr><tr><td><code>between:1,5</code></td><td><code>'12345'</code></td><td>π’</td></tr><tr><td><code>between:1,5</code></td><td><code>long-text</code></td><td>π΄</td></tr><tr><td><code>between:1,5</code></td><td><code>12345</code></td><td>π΄</td></tr></tbody></table><h2 id="boolean" tabindex="-1"><code>boolean</code> <a class="header-anchor" href="#boolean" aria-label="Permalink to "`boolean`"">β</a></h2><p>The field under validation must be a boolean value of the form true, false, 0, 1, 'true', 'false', '0', '1',</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-0c3yF" id="tab-rDO3koK" checked><label data-title="Declarative" for="tab-rDO3koK">Declarative</label><input type="radio" name="group-0c3yF" id="tab-xkWB2Gs"><label data-title="Function-based" for="tab-xkWB2Gs">Function-based</label><input type="radio" name="group-0c3yF" id="tab-wifvCf6"><label data-title="Direct usage" for="tab-wifvCf6">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { isOpen: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"boolean"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, boolean } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { isOpen: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">boolean</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isBoolean } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isBoolean</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th>Is valid?</th></tr></thead><tbody><tr><td><code>boolean</code></td><td><code>null</code></td><td>π΄</td></tr><tr><td><code>boolean</code></td><td><code>undefined</code></td><td>π΄</td></tr><tr><td><code>boolean</code></td><td><code>true</code></td><td>π’</td></tr><tr><td><code>boolean</code></td><td><code>'true'</code></td><td>π’</td></tr><tr><td><code>boolean</code></td><td><code>1</code></td><td>π’</td></tr><tr><td><code>boolean</code></td><td><code>'1'</code></td><td>π’</td></tr><tr><td><code>boolean</code></td><td><code>false</code></td><td>π΄</td></tr><tr><td><code>boolean</code></td><td><code>'false'</code></td><td>π΄</td></tr><tr><td><code>boolean</code></td><td><code>0</code></td><td>π΄</td></tr><tr><td><code>boolean</code></td><td><code>'0'</code></td><td>π΄</td></tr></tbody></table><h2 id="confirmed" tabindex="-1"><code>confirmed</code> <a class="header-anchor" href="#confirmed" aria-label="Permalink to "`confirmed`"">β</a></h2><p>The field under validation must have a matching field of <code>foo_confirmed</code>. For example, if the field under validation is <code>password</code>, a matching <code>password_confirmed</code> field must be present in the input.</p><p>Let's assume that the value of the <code>password</code> field is <code>123456</code>. If you use the <code>confirmed</code> definition on the <code>password</code> field's rules, the truth table would look like the following example:</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-YWVLM" id="tab-5YvsYUq" checked><label data-title="Declarative" for="tab-5YvsYUq">Declarative</label><input type="radio" name="group-YWVLM" id="tab-n5T8qih"><label data-title="Function-based" for="tab-n5T8qih">Function-based</label><input type="radio" name="group-YWVLM" id="tab-jP8FnI2"><label data-title="Direct usage" for="tab-jP8FnI2">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { password: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"confirmed"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, confirmed } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { password: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">confirmed</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isConfirmed } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isConfirmed</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"your-data"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><table tabindex="0"><thead><tr><th>Field</th><th>Value</th><th>Is valid?</th></tr></thead><tbody><tr><td><code>password_confirmed</code></td><td><code>123456</code></td><td>π’</td></tr><tr><td><code>password_confirmed</code></td><td><code>654321</code></td><td>π΄</td></tr><tr><td><code>password_confirmed</code></td><td><code>null</code></td><td>π΄</td></tr><tr><td><code>password_confirmed</code></td><td><code>undefined</code></td><td>π΄</td></tr><tr><td><code>password_confirmed</code></td><td><code>true</code></td><td>π΄</td></tr><tr><td><code>password_confirmed</code></td><td><code>false</code></td><td>π΄</td></tr><tr><td><code>password_confirmed</code></td><td><code>{}</code></td><td>π΄</td></tr></tbody></table><h2 id="date-format" tabindex="-1"><code>date:format</code> <a class="header-anchor" href="#date-format" aria-label="Permalink to "`date:format`"">β</a></h2><p>The field under validation must be a valid date format which is acceptable by Javascript's Date object.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>robust-validator library uses the <a href="https://date-fns.org" target="_blank" rel="noreferrer">date-fns</a> for the date validations.</p><p>You can check the possible date formats <a href="https://date-fns.org/v4.1.0/docs/format" target="_blank" rel="noreferrer">here</a>.</p></div><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-GFZh_" id="tab-az7quJ8" checked><label data-title="Declarative" for="tab-az7quJ8">Declarative</label><input type="radio" name="group-GFZh_" id="tab--cV-Zw_"><label data-title="Function-based" for="tab--cV-Zw_">Function-based</label><input type="radio" name="group-GFZh_" id="tab-cyV-jPB"><label data-title="Direct usage" for="tab-cyV-jPB">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { startAt: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"date:yyyy-MM-dd"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, date } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { startAt: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">date</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"yyyy-MM-dd"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isDate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isDate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"your-data"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"yyyy-MM-dd"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th>Is valid?</th></tr></thead><tbody><tr><td><code>date:yyyy-MM-dd</code></td><td><code>null</code></td><td>π΄</td></tr><tr><td><code>date:yyyy-MM-dd</code></td><td><code>undefined</code></td><td>π΄</td></tr><tr><td><code>date:yyyy-MM-dd</code></td><td><code>2023-12-16</code></td><td>π’</td></tr><tr><td><code>date:yyyy-MM-dd</code></td><td><code>2023-01-01</code></td><td>π’</td></tr><tr><td><code>date:yyyy-MM-dd</code></td><td><code>December 16, 2023 12:00:00</code></td><td>π΄</td></tr><tr><td><code>date:yyyy-MM-dd</code></td><td><code>2022-13-01</code></td><td>π΄</td></tr><tr><td><code>date:yyyy-MM-dd</code></td><td><code>2022-12-32</code></td><td>π΄</td></tr><tr><td><code>date:yyyy-MM-dd</code></td><td><code>2022-02-29</code></td><td>π΄</td></tr><tr><td><code>date:yyyy-MM-dd</code></td><td><code>false</code></td><td>π΄</td></tr></tbody></table><h2 id="digits-value" tabindex="-1"><code>digits:value</code> <a class="header-anchor" href="#digits-value" aria-label="Permalink to "`digits:value`"">β</a></h2><p>The field under validation must be numeric and must have an exact length of value.</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-cqNQE" id="tab-0Uprf2w" checked><label data-title="Declarative" for="tab-0Uprf2w">Declarative</label><input type="radio" name="group-cqNQE" id="tab-iCyDzQF"><label data-title="Function-based" for="tab-iCyDzQF">Function-based</label><input type="radio" name="group-cqNQE" id="tab-1wWTE6Z"><label data-title="Direct usage" for="tab-1wWTE6Z">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { pin: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"digits:4"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, digits } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { pin: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">digits</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isDigits } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isDigits</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"1234"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th>Is valid?</th></tr></thead><tbody><tr><td><code>digits:4</code></td><td><code>null</code></td><td>π΄</td></tr><tr><td><code>digits:4</code></td><td><code>undefined</code></td><td>π΄</td></tr><tr><td><code>digits:4</code></td><td><code>1234</code></td><td>π’</td></tr><tr><td><code>digits:4</code></td><td><code>123</code></td><td>π΄</td></tr><tr><td><code>digits:4</code></td><td><code>true</code></td><td>π΄</td></tr><tr><td><code>digits:4</code></td><td><code>'1234'</code></td><td>π΄</td></tr><tr><td><code>digits:4</code></td><td><code>123456</code></td><td>π΄</td></tr></tbody></table><h2 id="digits-between-min-max" tabindex="-1"><code>digits_between:min,max</code> <a class="header-anchor" href="#digits-between-min-max" aria-label="Permalink to "`digits_between:min,max`"">β</a></h2><p>The field under validation must be numeric and must have length between given min and max.</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-ZRzq9" id="tab-G6LZ_Jj" checked><label data-title="Declarative" for="tab-G6LZ_Jj">Declarative</label><input type="radio" name="group-ZRzq9" id="tab-5ha3svK"><label data-title="Function-based" for="tab-5ha3svK">Function-based</label><input type="radio" name="group-ZRzq9" id="tab-bKe1X13"><label data-title="Direct usage" for="tab-bKe1X13">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { pin: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"digits_between:4,6"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, digitsBetween } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { pin: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">digitsBetween</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">6</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isdigitsBetween } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isdigitsBetween</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"1234"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">6</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th>Is valid?</th></tr></thead><tbody><tr><td><code>digits_between:4,6</code></td><td><code>null</code></td><td>π΄</td></tr><tr><td><code>digits_between:4,6</code></td><td><code>undefined</code></td><td>π΄</td></tr><tr><td><code>digits_between:4,6</code></td><td><code>1234</code></td><td>π’</td></tr><tr><td><code>digits_between:4,6</code></td><td><code>123456</code></td><td>π’</td></tr><tr><td><code>digits_between:4,6</code></td><td><code>123</code></td><td>π΄</td></tr><tr><td><code>digits_between:4,6</code></td><td><code>true</code></td><td>π΄</td></tr><tr><td><code>digits_between:4,6</code></td><td><code>'1234'</code></td><td>π΄</td></tr></tbody></table><h2 id="email" tabindex="-1"><code>email</code> <a class="header-anchor" href="#email" aria-label="Permalink to "`email`"">β</a></h2><p>The field under validation must be formatted as an e-mail address.</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-rO6x_" id="tab-NbHZGXX" checked><label data-title="Declarative" for="tab-NbHZGXX">Declarative</label><input type="radio" name="group-rO6x_" id="tab-cOr5bhh"><label data-title="Function-based" for="tab-cOr5bhh">Function-based</label><input type="radio" name="group-rO6x_" id="tab-qYZCtsq"><label data-title="Direct usage" for="tab-qYZCtsq">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { contact_email: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"email"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, email } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { contact_email: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">email</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isEmail } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isEmail</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"your-date"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th>Is valid?</th></tr></thead><tbody><tr><td><code>email</code></td><td><code>null</code></td><td>π΄</td></tr><tr><td><code>email</code></td><td><code>undefined</code></td><td>π΄</td></tr><tr><td><code>email</code></td><td><code>foo@bar.com</code></td><td>π’</td></tr><tr><td><code>email</code></td><td><code>just a text</code></td><td>π΄</td></tr><tr><td><code>email</code></td><td><code>true</code></td><td>π΄</td></tr><tr><td><code>email</code></td><td><code>'1234'</code></td><td>π΄</td></tr></tbody></table><h2 id="hex" tabindex="-1"><code>hex</code> <a class="header-anchor" href="#hex" aria-label="Permalink to "`hex`"">β</a></h2><p>The field under validation should be a hexadecimal format.</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-WPIS1" id="tab-3dV-06v" checked><label data-title="Declarative" for="tab-3dV-06v">Declarative</label><input type="radio" name="group-WPIS1" id="tab-YHPOkpk"><label data-title="Function-based" for="tab-YHPOkpk">Function-based</label><input type="radio" name="group-WPIS1" id="tab-sEnDrL9"><label data-title="Direct usage" for="tab-sEnDrL9">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { colorCode: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"hex"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, hex } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { colorCode: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">hex</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isHex } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isHex</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"f1f1f1"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th>Is valid?</th></tr></thead><tbody><tr><td><code>hex</code></td><td><code>null</code></td><td>π΄</td></tr><tr><td><code>hex</code></td><td><code>undefined</code></td><td>π΄</td></tr><tr><td><code>hex</code></td><td><code>1aF</code></td><td>π’</td></tr><tr><td><code>hex</code></td><td><code>1234567890ABCDEF</code></td><td>π’</td></tr><tr><td><code>hex</code></td><td><code>123xyz</code></td><td>π΄</td></tr><tr><td><code>hex</code></td><td><code>0xg</code></td><td>π΄</td></tr><tr><td><code>hex</code></td><td><code>invalid string</code></td><td>π΄</td></tr></tbody></table><h2 id="includes-foo-bar" tabindex="-1"><code>includes:foo,bar,...</code> <a class="header-anchor" href="#includes-foo-bar" aria-label="Permalink to "`includes:foo,bar,...`"">β</a></h2><p>The field under validation must be included in the given list of values.</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-GIM9x" id="tab-qBhpjrG" checked><label data-title="Declarative" for="tab-qBhpjrG">Declarative</label><input type="radio" name="group-GIM9x" id="tab-bAWY-ct"><label data-title="Function-based" for="tab-bAWY-ct">Function-based</label><input type="radio" name="group-GIM9x" id="tab-Shj1wwK"><label data-title="Direct usage" for="tab-Shj1wwK">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { userChoice: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"includes:news,marketing"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, includes } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { userChoice: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">includes</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">([</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"news"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"marketing"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">])] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isIncludes } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isIncludes</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"your-data"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"news,marketing"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// or</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isIncludes</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"your-data"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"news"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"marketing"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]);</span></span></code></pre></div></div></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th>Is valid?</th></tr></thead><tbody><tr><td><code>includes:A,B</code></td><td><code>null</code></td><td>π΄</td></tr><tr><td><code>includes:A,B</code></td><td><code>undefined</code></td><td>π΄</td></tr><tr><td><code>includes:A,B</code></td><td><code>A</code></td><td>π’</td></tr><tr><td><code>includes:A,B</code></td><td><code>B</code></td><td>π’</td></tr><tr><td><code>includes:A,B</code></td><td><code>C</code></td><td>π΄</td></tr><tr><td><code>includes:A,B</code></td><td><code>true</code></td><td>π΄</td></tr><tr><td><code>includes:A,B</code></td><td><code>{}</code></td><td>π΄</td></tr></tbody></table><h2 id="integer" tabindex="-1"><code>integer</code> <a class="header-anchor" href="#integer" aria-label="Permalink to "`integer`"">β</a></h2><p>The field under validation must have an integer value.</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-L_CCh" id="tab-kaPA6Vb" checked><label data-title="Declarative" for="tab-kaPA6Vb">Declarative</label><input type="radio" name="group-L_CCh" id="tab-IFMbVQZ"><label data-title="Function-based" for="tab-IFMbVQZ">Function-based</label><input type="radio" name="group-L_CCh" id="tab-cu78ChU"><label data-title="Direct usage" for="tab-cu78ChU">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { age: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"integer"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, integer } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { age: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">integer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isInteger } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isInteger</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">134</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th>Is valid?</th></tr></thead><tbody><tr><td><code>integer</code></td><td><code>null</code></td><td>π΄</td></tr><tr><td><code>integer</code></td><td><code>undefined</code></td><td>π΄</td></tr><tr><td><code>integer</code></td><td><code>123</code></td><td>π’</td></tr><tr><td><code>integer</code></td><td><code>3.14</code></td><td>π΄</td></tr><tr><td><code>integer</code></td><td><code>abc</code></td><td>π΄</td></tr></tbody></table><h2 id="max-value" tabindex="-1"><code>max:value</code> <a class="header-anchor" href="#max-value" aria-label="Permalink to "`max:value`"">β</a></h2><p>Validate that an attribute is no greater than a given size</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-wa9TP" id="tab-vtmL54v" checked><label data-title="Declarative" for="tab-vtmL54v">Declarative</label><input type="radio" name="group-wa9TP" id="tab-duVnkXW"><label data-title="Function-based" for="tab-duVnkXW">Function-based</label><input type="radio" name="group-wa9TP" id="tab-N5bOwec"><label data-title="Direct usage" for="tab-N5bOwec">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { age: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"max:99"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, max } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { age: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">max</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">99</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isMax } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isMax</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">10</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">99</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th>Is valid?</th></tr></thead><tbody><tr><td><code>max:5</code></td><td><code>null</code></td><td>π΄</td></tr><tr><td><code>max:5</code></td><td><code>undefined</code></td><td>π΄</td></tr><tr><td><code>max:5</code></td><td><code>'123'</code></td><td>π’</td></tr><tr><td><code>max:5</code></td><td><code>3</code></td><td>π’</td></tr><tr><td><code>max:5</code></td><td><code>'abcdef'</code></td><td>π΄</td></tr><tr><td><code>max:5</code></td><td><code>10</code></td><td>π΄</td></tr></tbody></table><h2 id="min-value" tabindex="-1"><code>min:value</code> <a class="header-anchor" href="#min-value" aria-label="Permalink to "`min:value`"">β</a></h2><p>Validate that an attribute is at least a given size.</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-aT-Oe" id="tab-mVRv_o-" checked><label data-title="Declarative" for="tab-mVRv_o-">Declarative</label><input type="radio" name="group-aT-Oe" id="tab-7mX_zZy"><label data-title="Function-based" for="tab-7mX_zZy">Function-based</label><input type="radio" name="group-aT-Oe" id="tab-d9gB-2b"><label data-title="Direct usage" for="tab-d9gB-2b">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { age: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"min:22"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, min } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { age: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">min</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">22</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isMin } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isMin</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">10</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">22</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th>Is valid?</th></tr></thead><tbody><tr><td><code>min:5</code></td><td><code>null</code></td><td>π΄</td></tr><tr><td><code>min:5</code></td><td><code>undefined</code></td><td>π΄</td></tr><tr><td><code>min:5</code></td><td><code>'abcdef'</code></td><td>π’</td></tr><tr><td><code>min:5</code></td><td><code>'123456'</code></td><td>π’</td></tr><tr><td><code>min:5</code></td><td><code>10</code></td><td>π’</td></tr><tr><td><code>min:5</code></td><td><code>'abcdef'</code></td><td>π΄</td></tr><tr><td><code>min:5</code></td><td><code>2</code></td><td>π΄</td></tr></tbody></table><h2 id="not-includes-foo-bar" tabindex="-1"><code>not_includes:foo,bar,...</code> <a class="header-anchor" href="#not-includes-foo-bar" aria-label="Permalink to "`not_includes:foo,bar,...`"">β</a></h2><p>The field under validation must not be included in the given list of values.</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-RuJLU" id="tab-zfXwfYq" checked><label data-title="Declarative" for="tab-zfXwfYq">Declarative</label><input type="radio" name="group-RuJLU" id="tab-1ZXGw3b"><label data-title="Function-based" for="tab-1ZXGw3b">Function-based</label><input type="radio" name="group-RuJLU" id="tab-ONQxSf1"><label data-title="Direct usage" for="tab-ONQxSf1">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { userChoice: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"not_includes:news,marketing"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, notIncludes } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { userChoice: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">notIncludes</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">([</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"news"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"marketing"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">])] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isNotIncludes } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isNotIncludes</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"your-data"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"news,marketing"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// or</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isNotIncludes</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"your-data"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"news"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"marketing"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]);</span></span></code></pre></div></div></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th>Is valid?</th></tr></thead><tbody><tr><td><code>not_includes:A,B</code></td><td><code>null</code></td><td>π΄</td></tr><tr><td><code>not_includes:A,B</code></td><td><code>undefined</code></td><td>π΄</td></tr><tr><td><code>not_includes:A,B</code></td><td><code>C</code></td><td>π’</td></tr><tr><td><code>not_includes:A,B</code></td><td><code>A</code></td><td>π΄</td></tr><tr><td><code>not_includes:A,B</code></td><td><code>B</code></td><td>π΄</td></tr><tr><td><code>not_includes:A,B</code></td><td><code>true</code></td><td>π΄</td></tr></tbody></table><h2 id="numeric" tabindex="-1"><code>numeric</code> <a class="header-anchor" href="#numeric" aria-label="Permalink to "`numeric`"">β</a></h2><p>Validate that an attribute is numeric.</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-UDPMy" id="tab-o8DP_hI" checked><label data-title="Declarative" for="tab-o8DP_hI">Declarative</label><input type="radio" name="group-UDPMy" id="tab-HrnIpGG"><label data-title="Function-based" for="tab-HrnIpGG">Function-based</label><input type="radio" name="group-UDPMy" id="tab-YyXFizI"><label data-title="Direct usage" for="tab-YyXFizI">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { salary: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"numeric"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, numeric } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { salary: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">numeric</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isNumeric } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isNumeric</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">3000</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th>Is valid?</th></tr></thead><tbody><tr><td><code>integer</code></td><td><code>null</code></td><td>π΄</td></tr><tr><td><code>integer</code></td><td><code>undefined</code></td><td>π΄</td></tr><tr><td><code>integer</code></td><td><code>123</code></td><td>π’</td></tr><tr><td><code>integer</code></td><td><code>3.14</code></td><td>π’</td></tr><tr><td><code>integer</code></td><td><code>abc</code></td><td>π΄</td></tr></tbody></table><h2 id="required" tabindex="-1"><code>required</code> <a class="header-anchor" href="#required" aria-label="Permalink to "`required`"">β</a></h2><p>Checks if the value is provided.</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-0ubXl" id="tab-rs1S1jr" checked><label data-title="Declarative" for="tab-rs1S1jr">Declarative</label><input type="radio" name="group-0ubXl" id="tab-p2GtnGH"><label data-title="Function-based" for="tab-p2GtnGH">Function-based</label><input type="radio" name="group-0ubXl" id="tab-rz6iN2G"><label data-title="Direct usage" for="tab-rz6iN2G">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { salary: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"required"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, required } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { salary: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">required</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isRequired } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isRequired</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"your-data"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th>Is valid?</th></tr></thead><tbody><tr><td><code>required</code></td><td><code>john</code></td><td>π’</td></tr><tr><td><code>required</code></td><td><code>123</code></td><td>π’</td></tr><tr><td><code>required</code></td><td><code>1.23</code></td><td>π’</td></tr><tr><td><code>required</code></td><td><code>{}</code></td><td>π’</td></tr><tr><td><code>required</code></td><td><code>null</code></td><td>π΄</td></tr><tr><td><code>required</code></td><td><code>undefined</code></td><td>π΄</td></tr><tr><td><code>required</code></td><td><code>''</code></td><td>π΄</td></tr><tr><td><code>required</code></td><td><code>' '</code></td><td>π΄</td></tr></tbody></table><h2 id="size-value" tabindex="-1"><code>size:value</code> <a class="header-anchor" href="#size-value" aria-label="Permalink to "`size:value`"">β</a></h2><p>The field under validation must have a size matching the given value. For string data, value corresponds to the number of characters. For numeric data, value corresponds to a given integer value.</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-6DLo6" id="tab-YqKH_ao" checked><label data-title="Declarative" for="tab-YqKH_ao">Declarative</label><input type="radio" name="group-6DLo6" id="tab-2ZSK6Wo"><label data-title="Function-based" for="tab-2ZSK6Wo">Function-based</label><input type="radio" name="group-6DLo6" id="tab-um5Nu_D"><label data-title="Direct usage" for="tab-um5Nu_D">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { password: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"size:12"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, size } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { password: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">size</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">12</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isSize } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isSize</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"your-data"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">12</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th>Is valid?</th></tr></thead><tbody><tr><td><code>size:3</code></td><td><code>null</code></td><td>π΄</td></tr><tr><td><code>size:3</code></td><td><code>undefined</code></td><td>π΄</td></tr><tr><td><code>size:3</code></td><td><code>abc</code></td><td>π’</td></tr><tr><td><code>size:3</code></td><td><code>1</code></td><td>π’</td></tr><tr><td><code>size:3</code></td><td><code>1.23</code></td><td>π’</td></tr><tr><td><code>size:3</code></td><td><code>abcde</code></td><td>π΄</td></tr><tr><td><code>size:3</code></td><td><code>10</code></td><td>π΄</td></tr></tbody></table><h2 id="string" tabindex="-1"><code>string</code> <a class="header-anchor" href="#string" aria-label="Permalink to "`string`"">β</a></h2><p>The field under validation must be a string.</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-ah05J" id="tab-v5i3elq" checked><label data-title="Declarative" for="tab-v5i3elq">Declarative</label><input type="radio" name="group-ah05J" id="tab--6chB_N"><label data-title="Function-based" for="tab--6chB_N">Function-based</label><input type="radio" name="group-ah05J" id="tab-ukM_uBn"><label data-title="Direct usage" for="tab-ukM_uBn">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { content: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"string"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, string } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { content: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isString } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isString</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"your-data"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th>Is valid?</th></tr></thead><tbody><tr><td><code>string</code></td><td><code>abc</code></td><td>π’</td></tr><tr><td><code>string</code></td><td><code>''</code></td><td>π’</td></tr><tr><td><code>string</code></td><td><code>' '</code></td><td>π’</td></tr><tr><td><code>string</code></td><td><code>1</code></td><td>π΄</td></tr><tr><td><code>string</code></td><td><code>1.23</code></td><td>π΄</td></tr><tr><td><code>string</code></td><td><code>abcde</code></td><td>π΄</td></tr><tr><td><code>string</code></td><td><code>10</code></td><td>π΄</td></tr><tr><td><code>string</code></td><td><code>null</code></td><td>π΄</td></tr><tr><td><code>string</code></td><td><code>undefined</code></td><td>π΄</td></tr></tbody></table><h2 id="url" tabindex="-1"><code>url</code> <a class="header-anchor" href="#url" aria-label="Permalink to "`url`"">β</a></h2><p>Validate that an attribute has a valid URL format</p><div class="vp-code-group vp-adaptive-theme"><div class="tabs"><input type="radio" name="group-ookyq" id="tab-nodn7TH" checked><label data-title="Declarative" for="tab-nodn7TH">Declarative</label><input type="radio" name="group-ookyq" id="tab-q-RTX8t"><label data-title="Function-based" for="tab-q-RTX8t">Function-based</label><input type="radio" name="group-ookyq" id="tab-FRYnfx6"><label data-title="Direct usage" for="tab-FRYnfx6">Direct usage</label></div><div class="blocks"><div class="language-ts vp-adaptive-theme active"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { profile: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"url"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { validate, url } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> validate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, { profile: [</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">url</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()] });</span></span></code></pre></div><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { isUrl } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "robust-validator"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// ...</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isUrl</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"https://axe-api-com"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div></div></div><table tabindex="0"><thead><tr><th>Rule</th><th>Value</th><th>Is valid?</th></tr></thead><tbody><tr><td><code>url</code></td><td><code>null</code></td><td>π΄</td></tr><tr><td><code>url</code></td><td><code>undefined</code></td><td>π΄</td></tr><tr><td><code>url</code></td><td><code>https://example.com</code></td><td>π’</td></tr><tr><td><code>url</code></td><td><code>http://example.com</code></td><td>π’</td></tr><tr><td><code>url</code></td><td><code>ftp://example.com</code></td><td>π’</td></tr><tr><td><code>url</code></td><td><code>invalid-url</code></td><td>π΄</td></tr></tbody></table></div></div></main><footer class="VPDocFooter" data-v-e6f2a212 data-v-1bcd8184><!--[--><!--]--><div class="edit-info" data-v-1bcd8184><div class="edit-link" data-v-1bcd8184><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/axe-api/validator/edit/main/docs/rules.md" target="_blank" rel="noreferrer" data-v-1bcd8184><!--[--><span class="vpi-square-pen edit-link-icon" data-v-1bcd8184></span> Edit this page on GitHub<!--]--></a></div><div class="last-updated" data-v-1bcd8184><p class="VPLastUpdated" data-v-1bcd8184 data-v-1bb0c8a8>Last updated: <time datetime="2025-07-10T22:08:41.000Z" data-v-1bb0c8a8></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-1bcd8184><span class="visually-hidden" id="doc-footer-aria-label" data-v-1bcd8184>Pager</span><div class="pager" data-v-1bcd8184><a class="VPLink link pager-link prev" href="/terminology.html" data-v-1bcd8184><!--[--><span class="desc" data-v-1bcd8184>Previous page</span><span class="title" data-v-1bcd8184>Terminology</span><!--]--></a></div><div class="pager" data-v-1bcd8184><a class="VPLink link pager-link next" href="/i18n.html" data-v-1bcd8184><!--[--><span class="desc" data-v-1bcd8184>Next page</span><span class="title" data-v-1bcd8184>i18n</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-d8b57b2d data-v-566314d4><div class="container" data-v-566314d4><p class="message" data-v-566314d4>Released under the MIT License. | <a href="/privacy-policy">Privacy Policy</a> | <a href="/cookie-policy">Cookie Policy</a> | <a style="cursor: pointer" data-cc="show-preferencesModal">Cookie preferences</a></p><p class="copyright" data-v-566314d4>Copyright Β© 2020-present</p></div></footer><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"404.md\":\"DXxhBDBs\",\"blog.md\":\"DhId_h05\",\"blog_2025-07-12-how-to-validate-nested-objects-in-javascript-with-robust-validator.md\":\"_hWaR41G\",\"blog_2025-07-13-how-to-build-a-custom-validation-rule-in-javascript-with-robust-validator.md\":\"CcTRJLoF\",\"blog_2025-07-13-whats-new-in-robust-validator-v3.md\":\"CjbcIq-F\",\"blog_2025-07-14-how-to-validate-multilingual-error-messages-in-javascript-using-robust-validator.md\":\"ChuIfkty\",\"cookie-policy.md\":\"DVgnghAX\",\"customization.md\":\"28DLxhYF\",\"examples.md\":\"DG-YPkQu\",\"getting-started.md\":\"D6bv1dsQ\",\"i18n.md\":\"DxuMvIQv\",\"index.md\":\"NQx8AkPC\",\"options.md\":\"DkPgGocf\",\"privacy-policy.md\":\"GrYWhnjj\",\"purpose.md\":\"E9ECP0aw\",\"rules.md\":\"BT0ogGfs\",\"terminology.md\":\"BBC4oM9o\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Robust Validator\",\"description\":\"Rule-based data validation library in JavaScript. It's extendable, function-oriented, and i18n supported.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":\"force-dark\",\"themeConfig\":{\"nav\":[{\"text\":\"Blog\",\"link\":\"/blog\"}],\"editLink\":{\"pattern\":\"https://github.com/axe-api/validator/edit/main/docs/:path\",\"text\":\"Edit this page on GitHub\"},\"sidebar\":[{\"text\":\"Introduction\",\"items\":[{\"text\":\"Purpose\",\"link\":\"/purpose\"},{\"text\":\"Getting started\",\"link\":\"/getting-started\"},{\"text\":\"Examples\",\"link\":\"/examples\"},{\"text\":\"Terminology\",\"link\":\"/terminology\"}]},{\"text\":\"Reference\",\"items\":[{\"text\":\"Rules\",\"link\":\"/rules\"},{\"text\":\"i18n\",\"link\":\"/i18n\"},{\"text\":\"Customization\",\"link\":\"/customization\"},{\"text\":\"Options\",\"link\":\"/options\"}]}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/axe-api/validator\"}],\"footer\":{\"message\":\"Released under the MIT License. | <a href=\\\"/privacy-policy\\\">Privacy Policy</a> | <a href=\\\"/cookie-policy\\\">Cookie Policy</a> | <a style=\\\"cursor: pointer\\\" data-cc=\\\"show-preferencesModal\\\">Cookie preferences</a>\",\"copyright\":\"Copyright Β© 2020-present\"},\"search\":{\"provider\":\"local\"}},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
</body>
</html>