Menukar Rentetan Input Pengguna kepada Ungkapan Biasa
Apabila membangunkan penguji ungkapan biasa, adalah penting untuk mengendalikan ungkapan biasa yang dimasukkan pengguna dengan betul. Cabarannya terletak pada menerima input pengguna sebagai rentetan sambil memastikan ia boleh ditukar menjadi objek ekspresi biasa. Terdapat beberapa pendekatan untuk menangani isu ini:
Menggunakan Pembina RegExp dengan Pembatas:
Pembina objek RegExp membolehkan anda mencipta ungkapan biasa daripada rentetan. Untuk memasukkan pembatas (//) dalam rentetan yang dimasukkan pengguna, anda boleh menggunakan pembina dalam format berikut:
var re = new RegExp("/a|b/i"); // Equivalent to var re = /a|b/i;
Menghuraikan Rentetan dan Bendera:
Jika anda tidak mahu pengguna memasukkan pembatas, anda boleh menghuraikan rentetan input secara manual. Kenal pasti corak ungkapan biasa dan bendera (jika ada) dengan membelah rentetan pada akhir / aksara:
const userString = "a|b/i"; const pattern = userString.substring(0, userString.lastIndexOf("/")); const flags = userString.substring(userString.lastIndexOf("/") + 1); const re = new RegExp(pattern, flags);
Asingkan Bendera:
Sebagai alternatif, anda boleh minta pengguna memasukkan corak ungkapan biasa dan bendera secara berasingan. Pendekatan ini memberikan lebih kawalan ke atas pengendalian bendera, kerana pengguna boleh menentukan berbilang bendera atau membiarkannya kosong.
Dengan melaksanakan salah satu kaedah ini, anda boleh menukar rentetan yang dimasukkan pengguna kepada objek ekspresi biasa, memastikan penguji regex anda boleh mengendalikan input pengguna dengan berkesan.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan Input Pengguna kepada Ungkapan Biasa dalam Penguji Ungkapan Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!