Mengapa Ujian RegEx JavaScript Gagal?

Barbara Streisand
Lepaskan: 2024-10-18 13:27:02
asal
520 orang telah melayarinya

Why Does JavaScript RegEx Testing Fail?

Pengujian RegEx JavaScript Gagal: Menyahkod Isu

Dalam bidang JavaScript, pembangun menghadapi dilema yang membingungkan: corak ekspresi biasa mereka secara konsisten menghasilkan keputusan palsu untuk sebarang input. Apabila berkongsi kod mereka dengan editor dalam talian, ia secara mengejutkan berfungsi seperti yang dimaksudkan. Pemeriksaan yang lebih dekat mendedahkan puncanya: pengendalian garisan belakang yang tidak betul.

Pada asalnya, pembangun mentakrifkan ungkapan biasa sebagai rentetan:

<code class="javascript">var regEx = new RegExp("^(0[1-9]|1[0-2])/\d{4}$", "g");</code>
Salin selepas log masuk
Salin selepas log masuk

Walau bagaimanapun, apabila membina ungkapan biasa daripada rentetan, ia adalah penting untuk menggandakan setiap aksara garis miring ke belakang. Ini kerana penghurai mentafsir rentetan secara literal dan menggunakan peraturannya sendiri untuk garis miring ke belakang, menghasilkan ungkapan yang diubah suai yang berbeza daripada corak yang dimaksudkan.

Dengan mengabaikan penggandaan garis miring ke belakang, corak tersebut menjadi:

^(0[1-9]|1[0-2])/d{4}$
Salin selepas log masuk

Sebaliknya, garis miring ke belakang hendaklah digandakan dalam rentetan:

<code class="javascript">var regEx = new RegExp("^(0[1-9]|1[0-2])/\d{4}$", "g");</code>
Salin selepas log masuk
Salin selepas log masuk

Pengubahsuaian ini memastikan penghurai mentafsir corak dengan betul, membolehkannya mengecam format yang diingini selama berbulan-bulan dan tahun.

Selain itu, adalah wajar mempertimbangkan menggunakan sintaks ungkapan biasa secara langsung:

<code class="javascript">var regEx = /^(0[1-9]|1[0-2])\/\d{4}$/g;</code>
Salin selepas log masuk

Ini menghapuskan keperluan untuk interpolasi rentetan dan menyediakan sintaks yang lebih intuitif untuk menyatakan corak.

Atas ialah kandungan terperinci Mengapa Ujian RegEx JavaScript Gagal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan