Rumah > Artikel > hujung hadapan web > Mengapa Ujian RegEx JavaScript Gagal?
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>
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}$
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>
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>
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!