Rumah >hujung hadapan web >tutorial js >Mengapa Regex JavaScript Saya Gagal Mengekstrak Koordinat daripada 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!