Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Mengakses Kumpulan Dipadankan dalam Ungkapan Biasa JavaScript?

Bagaimanakah Saya Boleh Mengakses Kumpulan Dipadankan dalam Ungkapan Biasa JavaScript?

Mary-Kate Olsen
Lepaskan: 2024-12-29 16:42:18
asal
904 orang telah melayarinya

How Can I Access Matched Groups in JavaScript Regular Expressions?

Akses Kumpulan Dipadankan dalam Ungkapan Biasa JavaScript

Apabila menggunakan ungkapan biasa untuk memadankan corak dalam rentetan, selalunya wajar untuk mengakses bahagian tertentu daripada teks dipadankan. JavaScript menyediakan beberapa cara untuk melakukannya.

Dalam contoh anda, anda menggunakan ungkapan biasa dengan kurungan dengan betul untuk menangkap sebahagian daripada rentetan. Walau bagaimanapun, isu yang anda hadapi bukan dengan regex itu sendiri tetapi dengan cara anda mengakses kumpulan yang dipadankan.

Mengakses Kumpulan dengan .exec()

The . kaedah exec() mengembalikan tatasusunan yang mengandungi keseluruhan rentetan yang dipadankan sebagai elemen pertama, diikuti oleh mana-mana kumpulan yang ditangkap. Untuk mengakses kumpulan pertama yang ditangkap (bahagian "abc" dalam contoh anda), anda akan menggunakan arr[1]:

let myString = "something format_abc";
let arr = /(?:^|\s)format_(.*?)(?:\s|$)/.exec(myString);

console.log(arr[1]); // Prints: abc
Salin selepas log masuk

Menggunakan Kumpulan Tangkapan Bernama

Anda juga boleh menamakan kumpulan tangkapan anda menggunakan sintaks ungkapan biasa seperti (?). Ini membolehkan anda mengakses teks yang ditangkap dengan namanya:

let myString = "something format_abc";
let arr = /(?:^|\s)format_(?<text>.*?)(?:\s|$)/.exec(myString);

console.log(arr.groups.text); // Prints: abc
Salin selepas log masuk

Sintaks Gantian dengan Kumpulan Tangkapan Bernama:

Dalam ECMAScript 2018, anda boleh menggunakan sedikit berbeza sintaks untuk kumpulan tangkap bernama, melampirkan nama kumpulan dalam kerinting pendakap:

let myString = "something format_abc";
let arr = /(?:^|\s)format_({text}.*?)(?:\s|$)/.exec(myString);

console.log(arr.groups.text); // Prints: abc
Salin selepas log masuk

Memadankan Berbilang Kejadian dengan .matchAll()

Kaedah .matchAll() telah diperkenalkan dalam ECMAScript 2020 dan menyediakan API berasaskan lelaran untuk memadankan berbilang kejadian corak dalam rentetan. Ia mengembalikan iterator yang menghasilkan keputusan padanan sebagai tatasusunan untuk setiap perlawanan dan anda boleh mengakses kumpulan yang ditangkap dalam setiap keputusan.

Untuk menggunakan .matchAll() dalam contoh anda:

let myString = "something format_abc and something format_xyz";
let matches = myString.matchAll(/(?:^|\s)format_(.*?)(?:\s|$)/g);

for (let match of matches) {
  console.log(match[1]); // Prints: abc, then xyz
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Kumpulan Dipadankan dalam Ungkapan Biasa JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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