Rumah >hujung hadapan web >tutorial js >Mengapa Regex JavaScript Saya Gagal Mengekstrak Koordinat daripada String?

Mengapa Regex JavaScript Saya Gagal Mengekstrak Koordinat daripada String?

Linda Hamilton
Linda Hamiltonasal
2024-12-21 17:46:16291semak imbas

Why Is My JavaScript Regex Failing to Extract Coordinates from a String?

Mengapa JavaScript Regex Ini Tidak Berfungsi?

Cuba untuk mengekstrak mata daripada rentetan dengan ungkapan biasa, pengguna menemui null hasil. Regex yang disediakan, "(s([0-9.-] )s,s([0-9.-] )s*)", sepadan dengan titik yang disertakan dalam kurungan dan dipisahkan dengan koma. Walau bagaimanapun, apabila digunakan pada rentetan seperti "(25.774252, -80.190262),(18.466465, -66.118292),(32.321384, -64.75737),(25.774252, -80.190262)", ia gagal.

Resolusi

Punca utama ialah penggunaan pembina RegExp yang salah. Untuk menggunakan literal regex, yang lebih mudah dan kurang terdedah kepada ralat, gantikan "RegExp baharu" dengan "/". Tambahan pula, pengubah suai diluluskan sebagai hujah kedua:

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

Nota tentang Output

match() mengembalikan tatasusunan rentetan yang sepadan, yang mungkin tidak berguna untuk mengekstrak nilai berangka. Sebaliknya, exec() hendaklah digunakan untuk mengekstrak padanan individu:

var result, points = [];

while ((result = reg.exec(polygons)) !== null) {
    points.push([+result[1], +result[2]]);
}

Ini akan mencipta tatasusunan yang mengandungi koordinat sebagai nombor. Sebagai alternatif, jika rentetan diutamakan, tinggalkan tambah pertama ( ).

Atas ialah kandungan terperinci Mengapa Regex JavaScript Saya Gagal Mengekstrak Koordinat daripada String?. 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