Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk mengklon ungkapan biasa yang diberikan dalam JavaScript?

Bagaimana untuk mengklon ungkapan biasa yang diberikan dalam JavaScript?

WBOY
WBOYke hadapan
2023-09-17 17:25:02985semak imbas

Sokongan ungkapan biasa JavaScript secara meluas dianggap sebagai salah satu yang terbaik di dunia, tetapi ia mempunyai satu kelemahan: tiada cara terbina dalam untuk mengklonkan Mod ungkapan biasa. Ini boleh menjadi masalah apabila anda perlu mencipta ungkapan biasa baharu yang serupa dengan ungkapan biasa sedia ada tetapi dengan beberapa perubahan kecil.

如何在 JavaScript 中克隆给定的正则表达式?Masalahnya ialah ungkapan biasa ialah objek, jadi ia tidak boleh disalin dengan hanya memberikan satu objek kepada yang lain. Pertimbangkan kod berikut -

var regex1 = /foo/;
var regex2 = regex1;
regex2 === regex1; // true

Dalam kod ini, kami mencipta dua ungkapan biasa yang serupa. Tetapi bagaimana jika kita ingin membuat perubahan kecil kepada salah satu daripada mereka?

regex2 = /bar/;
regex1 === regex2; // false

Kini kedua-dua ungkapan biasa ini berbeza, walaupun ia bermula sebagai salinan antara satu sama lain. Ini kerana ungkapan biasa boleh berubah: ia boleh ditukar selepas ia dibuat.

Klon menggunakan ungkapan biasa

Salah satu cara untuk mengklon ungkapan biasa ialah dengan mencipta literal ungkapan biasa baharu yang serupa dengan literal ungkapan biasa sedia ada. Sebagai contoh, jika kita mempunyai ungkapan biasa seperti ini -

var regex1 = /foo/;

Kita boleh mencipta ungkapan biasa baharu yang serupa dengannya menggunakan ungkapan biasa literal -

var regex2 = /foo/;
regex1 === regex2; // true

Kaedah ini mudah dan mudah, tetapi hanya berfungsi jika ungkapan biasa ialah literal (iaitu tidak dibuat menggunakan pembina

RegExp()

baharu).

Gunakan pembina RegExp() untuk mengklon ungkapan biasa Cara lain untuk mengklon ungkapan biasa ialah menggunakan

RegExp()

pembina. Ini membolehkan kami mencipta ungkapan biasa baharu berdasarkan ungkapan biasa sedia ada tetapi dengan beberapa perubahan. Sebagai contoh, jika kita mempunyai ungkapan biasa seperti ini -

var regex1 = /foo/;

Kita boleh menggunakan RegExp() pembina untuk mencipta ungkapan biasa baharu yang serupa dengannya -

var regex2 = new RegExp(regex1);
regex1 === regex2; // true

Kaedah ini lebih rumit sedikit daripada yang sebelumnya, tetapi ia mempunyai kelebihan kerana dapat mengklonkan ungkapan biasa bukan teks. Mengapa kita mengklon ungkapan biasa?

Pengklonan ungkapan biasa mempunyai beberapa faedah. Pertama, ia menjimatkan masa anda jika anda perlu mencipta banyak ungkapan biasa yang serupa. Kedua, ia membantu anda mengelakkan ralat jika anda perlu membuat perubahan kecil pada ungkapan biasa sedia ada. Akhir sekali, ia boleh menjadikan kod anda lebih mudah dibaca dengan memberikan ungkapan biasa nama deskriptif.

Kelemahan pengklonan ungkapan biasa

Satu kelemahan pengklonan ungkapan biasa ialah ia menjadikan kod lebih kompleks. Contohnya, jika anda mempunyai ungkapan biasa seperti ini -

var regex1 = /foo/;

dan anda ingin mencipta ungkapan biasa baharu yang serupa dengannya tetapi dengan set bendera tidak sensitif huruf besar, anda perlu melakukan ini -

var regex2 = new RegExp(regex1, 'i');

Ini lebih kompleks daripada sekadar mencipta ungkapan biasa baharu dengan set bendera tidak sensitif huruf besar-besaran -

var regex2 = /foo/i;

Kesimpulannya, pengklonan ungkapan biasa boleh menjadi alat yang berguna, tetapi ia datang dengan beberapa pertukaran. Ia boleh menjadikan kod anda lebih kompleks, tetapi ia juga boleh menjimatkan masa anda dan membantu anda mengelakkan ralat.

Atas ialah kandungan terperinci Bagaimana untuk mengklon ungkapan biasa yang diberikan dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam