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

Mengapa Regex JavaScript Saya Gagal Mengekstrak Koordinat?

Barbara Streisand
Lepaskan: 2024-12-04 19:01:18
asal
1019 orang telah melayarinya

Why Are My JavaScript Regexes Failing to Extract Coordinates?

Analisis Kegagalan Regex JavaScript

Apabila menemui hasil nol daripada regeks JavaScript, adalah penting untuk menyelidiki selok-belok di sebalik ungkapan. Mari kita periksa mengapa regex khusus untuk mengekstrak koordinat daripada rentetan yang dipisahkan koma tidak menghasilkan padanan:

Kecacatan pembinaan regex:

regex yang dimaksudkan ditakrifkan sebagai:

new RegExp("/\(\s*([0-9.-]+)\s*,\s([0-9.-]+)\s*\)/g")
Salin selepas log masuk

Sebaliknya, literal regex sepatutnya digunakan:

var reg = /\(\s*([0-9.-]+)\s*,\s([0-9.-]+)\s*\)/g;
Salin selepas log masuk
  1. Pembatas bukan sebahagian daripada ungkapan dan tidak sepatutnya disertakan.
  2. Regex literal lebih mudah dan membantu mengelakkan masalah garis serong ke belakang yang berpotensi.

Analisis Output Regex:

Untuk lebih memahami regex, seseorang boleh mengeluarkan coraknya menggunakan konsol:

/(s*([0-9.-]+)s*,s([0-9.-]+)s*)/g
Salin selepas log masuk

Ini mendedahkan bahawa ungkapan itu akan memadankan literal 's', 'g' dan parens secara literal, yang bukan tingkah laku yang dimaksudkan.

Pertimbangan Output Tatasusunan:

Adalah penting untuk ambil perhatian bahawa match() mengembalikan tatasusunan padanan:

["(25.774252, -80.190262)", "(18.466465, -66.118292)", ... ]
Salin selepas log masuk

Untuk mengekstrak nombor individu, exec() hendaklah digunakan sebaliknya:

["(25.774252, -80.190262)", "25.774252", "-80.190262"]
Salin selepas log masuk

Operator tambah unari ( ) kemudiannya boleh digunakan untuk menukar rentetan kepada nombor.

Kod Lengkap:

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

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

Kod ini akan mencipta tatasusunan tatasusunan yang mengandungi koordinat yang diekstrak sebagai nombor.

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

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan