Mengakses Kumpulan Dipadankan dalam Ungkapan Biasa JavaScript
Apabila memadankan rentetan dengan ungkapan biasa, adalah penting untuk memahami cara mendapatkan semula subkumpulan yang ditangkap . Dalam JavaScript, ini dicapai menggunakan menangkap kumpulan dalam ungkapan biasa.
Pertimbangkan contoh berikut:
var myString = "something format_abc"; // Target substring: "abc" var arr = /(?:^|\s)format_(.*?)(?:\s|$)/.exec(myString); console.log(arr); // [" format_abc", "abc"] console.log(arr[1]); // undefined console.log(arr[0]); // format_undefined
Sebab Output Tidak Ditakrifkan:
Walaupun ungkapan biasa sepadan dengan betul dengan subrentetan "abc", mengakses arr[1] mengembalikan tidak ditentukan kerana pencetakan yang salah dalam pernyataan konsol.log. console.log mentafsir rentetan %A sebagai pemegang tempat pemformatan dan cuba menggantikannya dengan parameter kedua, yang tidak ditentukan dalam kes ini.
Mengakses Kumpulan Dipadankan:
Untuk mengekstrak kumpulan yang dipadankan, gunakan arr[1]. Ini akan mengembalikan "abc" dengan betul.
Lelaran Lebih Berbilang Padanan (ES2020):
JavaScript 2020 memperkenalkan kaedah matchAll, yang menghasilkan iterator yang boleh digunakan untuk lelaran ke atas semua padanan dalam rentetan.
const string = "something format_abc"; const regexp = /(?:^|\s)format_(.*?)(?:\s|$)/g; const matches = string.matchAll(regexp); for (const match of matches) { console.log(match); console.log(match.index); }
Pendekatan ini memberikan yang lebih bersih dan cara yang lebih intuitif untuk mengendalikan berbilang perlawanan.
Atas ialah kandungan terperinci Bagaimanakah Saya Mengakses Subkumpulan yang Ditangkap dalam Ungkapan Biasa JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!