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

Mengapa Koordinat Pemadanan Regex JavaScript Saya Tidak Betul?

Susan Sarandon
Lepaskan: 2024-12-13 02:14:12
asal
523 orang telah melayarinya

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;
Salin selepas log masuk

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)"]
Salin selepas log masuk

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);
Salin selepas log masuk

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!

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