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

Mengapa Regex JavaScript Saya Gagal Mengekstrak Koordinat?

Barbara Streisand
Barbara Streisandasal
2024-12-04 19:01:18966semak imbas

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")

Sebaliknya, literal regex sepatutnya digunakan:

var reg = /\(\s*([0-9.-]+)\s*,\s([0-9.-]+)\s*\)/g;
  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

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)", ... ]

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

["(25.774252, -80.190262)", "25.774252", "-80.190262"]

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]]);
}

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