Rumah >hujung hadapan web >tutorial js >Mengapa Koordinat Pemadanan Regex JavaScript Saya Tidak Betul?

Mengapa Koordinat Pemadanan Regex JavaScript Saya Tidak Betul?

Susan Sarandon
Susan Sarandonasal
2024-12-13 02:14:12513semak imbas

Why Isn't My JavaScript Regex Matching Coordinates Correctly?

Mengapa Regex JavaScript Ini Tidak Berfungsi

Dalam kod JavaScript yang disediakan, regex var reg = new RegExp("/(s) *([0-9.-] )s*,s([0-9.-] )s*)/g"); gagal untuk memadankan rentetan input var polygons="(25.774252, -80.190262),(18.466465, -66.118292),(32.321384, -64.75737),(25.774252, -80.190262) hasil.

Penggunaan Regex Salah

Ralat berpunca daripada dua penggunaan pembina RegExp yang salah:

  1. Pembatas: Garis miring ke hadapan (/) tidak boleh disertakan sebagai sebahagian daripada rentetan ungkapan biasa. Sebaliknya, gunakan sintaks /(s*([0-9.-] )s*,s([0-9.-] )s*)/g untuk mentakrifkan ungkapan dengan '/' sebagai pembatas.
  2. Escapering Backslashes: Jika menggunakan rentetan ungkapan biasa, aksara backslash mesti dilepaskan dengan aksara lain untuk memastikan representasi literalnya, kerana dikhaskan untuk urutan melarikan diri dalam rentetan JavaScript.

Regex Literal

Untuk mengelakkan perangkap ini, adalah disyorkan untuk menggunakan regex literal, yang disertakan dalam garis miring ke hadapan dan melarikan diri mengikut sintaks ungkapan biasa:

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

Output Pengekstrakan

Sintaks polygons.match(reg) yang digunakan dalam kod mengembalikan tatasusunan subrentetan yang dipadankan. Walau bagaimanapun, memandangkan rentetan input hanya mengandungi subrentetan tunggal yang sepadan dengan corak, hasilnya ialah tatasusunan elemen tunggal:

["(25.774252, -80.190262),(18.466465, -66.118292),(32.321384, -64.75737),(25.774252, -80.190262)"]

Untuk mengekstrak pasangan lat/lon individu sebagai tatasusunan, kaedah padanan() hendaklah digantikan dengan exec():

[total match result, lat1, lon1, lat2, lon2, ..., latn, lonn] = reg.exec(polygons);

Ini akan menghasilkan tatasusunan yang mengandungi padanan keseluruhan dan semua kumpulan yang ditangkap, membolehkan akses mudah ke lat/lon berpasangan.

Atas ialah kandungan terperinci Mengapa Koordinat Pemadanan Regex JavaScript Saya Tidak Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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