Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menangkap Berbilang Kumpulan dalam Ungkapan Biasa JavaScript?
Akses Semua Tangkapan dalam Ungkapan Biasa JavaScript
Masalah timbul apabila cuba menangkap berbilang kumpulan dalam ungkapan biasa JavaScript, di mana hanya yang terakhir tangkapan dikekalkan.
Pertimbangkan contoh berikut:
"foo bar baz".match(/^(\s*\w+)+$/)
Daripada mengembalikan semua perlawanan seperti ["foo", "bar", "baz"], ia hanya mengembalikan ["baz "]. Tingkah laku ini berlaku kerana kumpulan penangkapan berulang menimpa tangkapan sebelumnya.
Untuk menyelesaikan masalah ini, pertimbangkan pendekatan alternatif:
Sebagai contoh, untuk menangkap urutan perkataan yang disertakan dalam < > dan bahagikannya pada ;, pertimbangkan contoh berikut:
var text = "a;b;<c;d;e;f>;g;h;i;<no no no>;j;k;<xx;yy;zz>"; var r = /<(\w+(;\w+)*)>/g; var match; while ((match = r.exec(text)) != null) { print(match[1].split(";")); }
Reex ini membahagikan urutan yang ditangkap kepada perkataan individu.
Rujukan:
Atas ialah kandungan terperinci Bagaimana untuk Menangkap Berbilang Kumpulan dalam Ungkapan Biasa JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!