Skip to content
Devix Open Source

Rule playground

Type a number in the widget and see what the Laravel rule on our server says, in English, Arabic or Urdu.

Live preview
<main class="demo demo--wide">
  <div class="controls demo-card" aria-label="Rule options">
    <div class="demo-row"><span class="label">Countries</span>
      <div class="demo-seg" role="radiogroup" aria-label="Allowed countries" data-key="countries">
        <button type="button" role="radio" aria-checked="true" data-value="">Any</button>
        <button type="button" role="radio" aria-checked="false" data-value="AE,SA">UAE, Saudi</button>
        <button type="button" role="radio" aria-checked="false" data-value="PK">Pakistan</button>
      </div>
    </div>
    <div class="demo-row"><span class="label">Type</span>
      <div class="demo-seg" role="radiogroup" aria-label="Allowed types" data-key="types">
        <button type="button" role="radio" aria-checked="true" data-value="">Any</button>
        <button type="button" role="radio" aria-checked="false" data-value="mobile">Mobile</button>
        <button type="button" role="radio" aria-checked="false" data-value="fixed">Landline</button>
      </div>
    </div>
    <div class="demo-row"><span class="label">Language</span>
      <div class="demo-seg" role="radiogroup" aria-label="Message language" data-key="locale">
        <button type="button" role="radio" aria-checked="true" data-value="en">EN</button>
        <button type="button" role="radio" aria-checked="false" data-value="ar">عربي</button>
        <button type="button" role="radio" aria-checked="false" data-value="ur">اردو</button>
      </div>
    </div>
    <div class="demo-row"><span class="label"></span>
      <label class="toggle"><input type="checkbox" data-key="international"> International only</label>
      <label class="toggle"><input type="checkbox" data-key="lenient"> Lenient</label>
    </div>
  </div>

  <div class="demo-field">
    <label class="demo-label" for="phone">Phone</label>
    <input id="phone" autocomplete="off">
  </div>

  <section class="verdict" aria-live="polite" data-state="idle">
    <span class="badge" id="badge">waiting</span>
    <p id="message">Type a number — try <span class="demo-chip try">050 1</span> <span class="demo-chip try">+44 7400 123456</span> <span class="demo-chip try">٠٣٠٠١٢٣٤٥٦٧</span></p>
  </section>

  <pre class="code" id="rule">'phone' =&gt; ['required', Phone::rule()]</pre>

  <dl class="demo-kv">
    <div><dt>e164()</dt><dd data-f="e164">—</dd></div>
    <div><dt>international()</dt><dd data-f="international">—</dd></div>
    <div><dt>national()</dt><dd data-f="national">—</dd></div>
    <div><dt>type()</dt><dd data-f="type">—</dd></div>
    <div><dt>country()</dt><dd data-f="country">—</dd></div>
    <div><dt>masked()</dt><dd data-f="masked">—</dd></div>
  </dl>
  <p class="demo-hint">Answered by <code>devix-labs/laravel-phone</code> running on devix.pk.</p>
</main>