Ini adalah pola regex yang saya miliki saat ini misalnya: 01xxxxxxxxx:

<input class="mdl-textfield__input" name="mobile_number" type="text" pattern="^(\+?6?01)[0-46-9]-*[0- 
9]{7,8}$">

Saya mencoba untuk mengizinkan tidak hanya 10 digit tetapi juga format lain sebagai 11 digit (01xxxxxxxxx) dan nomor kantor misalnya: 0xxxxxxxxx.

Adakah yang bisa membantu saya?

0
Kumaran Deva 26 Mei 2021, 21:36

1 menjawab

Jawaban Terbaik

Anda dapat menggunakan alternatif | untuk mencocokkan bagian awalan opsional yang ada, menghilangkan pencocokan tanda hubung jika Anda tidak membutuhkannya dan sebagai alternatif kedua cocok dengan 0 diikuti oleh 8 digit.

Atribut pattern secara implisit ditambatkan, sehingga Anda dapat menghilangkan ^ dan $

\+?6?(?:01[0-46-9]\d{7,8}|0\d{8})

Polanya cocok:

  • \+?6? Mencocokkan + opsional dan 6 opsional
  • (?: Grup non tangkap untuk pergantian
    • 01[0-46-9]\d{7,8} Cocokkan 01 lalu satu digit kecuali 5 dan 7-8 digit
    • | Atau
    • 0\d{8} Cocokkan 0 dan 8 digit
  • ) Tutup grup yang tidak diambil

Demo ekspresi reguler

0
The fourth bird 26 Mei 2021, 20:59