Rumah > hujung hadapan web > tutorial js > Mengapa Regex JavaScript Saya Gagal Mengekstrak Koordinat, dan Bagaimana Saya Membetulkannya?

Mengapa Regex JavaScript Saya Gagal Mengekstrak Koordinat, dan Bagaimana Saya Membetulkannya?

Susan Sarandon
Lepaskan: 2024-12-10 04:19:13
asal
521 orang telah melayarinya

Why Does My JavaScript Regex Fail to Extract Coordinates, and How Do I Fix It?

Memahami Malfungsi Regex JavaScript

Dalam JavaScript, pembangun menghadapi masalah dengan ungkapan biasa (regex) yang direka untuk mengekstrak mata daripada rentetan yang diberikan. Corak regex cuba memadankan pasangan koordinat dalam bentuk (lat, panjang), tetapi ia gagal menghasilkan sebarang hasil apabila digunakan bersama dengan rentetan ujian.

Pembangun telah menguji corak regex dengan betul dalam RegexPal, yang membuahkan hasil yang diharapkan. Walau bagaimanapun, apabila corak itu dilaksanakan dalam JavaScript, ia mengembalikan null dan bukannya tatasusunan padanan yang dijangkakan.

Penyelesaian: Melarikan Diri Segaris Belakang dan Menggunakan Regex Literal

Kepada menyelesaikan isu ini, pembangun perlu membuat dua pelarasan. Pertama, apabila menggunakan objek RegExp dalam JavaScript, garis miring ke hadapan (/) yang mengehadkan corak regex tidak seharusnya disertakan sebagai sebahagian daripada ungkapan.

Kedua, aksara garis miring ke belakang () mempunyai makna istimewa dalam rentetan JavaScript . Oleh itu, apabila mentakrifkan corak regex sebagai rentetan, setiap garis miring ke belakang mesti dilepaskan menggunakan garis miring ke belakang yang lain.

Sebagai alternatif, pembangun boleh menggunakan literal regex, yang merupakan pilihan yang lebih ringkas dan mudah. Literal regex dilambangkan dengan melampirkan corak dalam garis miring ke hadapan, seperti:

var reg = /\(\s*([0-9.-]+)\s*,\s([0-9.-]+)\s*\)/g;
Salin selepas log masuk
Salin selepas log masuk

Memahami Corak Regex

Corak regex yang disediakan bertujuan untuk memadankan pasangan koordinat disertakan dalam kurungan, dengan ruang kosong pilihan sebelum dan selepas setiap koordinat. Corak terdiri daripada tiga kumpulan tangkapan:

  • (s*([0-9.-] )s* sepadan dengan kurungan pembukaan, diikuti dengan ruang putih pilihan, dan kemudian menangkap koordinat latitud sebagai satu kumpulan .
  • , sepadan dengan koma yang memisahkan koordinat.
  • s*([0-9.-] )s* memadankan ruang putih pilihan selepas koma, dan kemudian menangkap koordinat longitud sebagai kumpulan lain.

Pengubah suai g memastikan bahawa corak akan mencari semua kemunculan corak dalam rentetan input.

Mengekstrak Koordinat Menggunakan .exec()

Dalam JavaScript, kaedah .match() mengembalikan tatasusunan rentetan yang mewakili keseluruhan bahagian rentetan input yang dipadankan, bagaimanapun, untuk kes penggunaan khusus ini, mengekstrak pasangan koordinat individu sebaliknya memerlukan kaedah .exec().

Kaedah .exec() mengembalikan tatasusunan nilai, di mana elemen pertama ialah keseluruhan subrentetan yang dipadankan dan elemen berikutnya ialah yang ditangkap kumpulan.

Untuk mengekstrak koordinat, pembangun boleh berulang kali memanggil .exec() sehingga tiada lagi padanan. Setiap kali, elemen kedua dan ketiga tatasusunan yang dikembalikan akan mengandungi koordinat latitud dan longitud, masing-masing.

Contoh Pelaksanaan

var reg = /\(\s*([0-9.-]+)\s*,\s([0-9.-]+)\s*\)/g;
Salin selepas log masuk
Salin selepas log masuk

Kod ini akan mengekstrak pasangan koordinat daripada rentetan input dan menyimpannya dalam tatasusunan titik sebagai tatasusunan, dengan setiap tatasusunan dalam mengandungi koordinat latitud dan longitud.

Atas ialah kandungan terperinci Mengapa Regex JavaScript Saya Gagal Mengekstrak Koordinat, dan Bagaimana Saya Membetulkannya?. 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