Heim > Web-Frontend > js-Tutorial > Warum können meine JavaScript-Regexes keine Koordinaten extrahieren?

Warum können meine JavaScript-Regexes keine Koordinaten extrahieren?

Barbara Streisand
Freigeben: 2024-12-04 19:01:18
Original
985 Leute haben es durchsucht

Why Are My JavaScript Regexes Failing to Extract Coordinates?

JavaScript-Regex-Fehleranalyse

Wenn bei JavaScript-Regexen Nullergebnisse auftreten, ist es wichtig, sich mit den Feinheiten hinter dem Ausdruck zu befassen. Lassen Sie uns untersuchen, warum ein bestimmter regulärer Ausdruck zum Extrahieren von Koordinaten aus einer durch Kommas getrennten Zeichenfolge keine Übereinstimmungen ergab:

Regex-Konstruktionsfehler:

Der betreffende reguläre Ausdruck wurde wie folgt definiert:

new RegExp("/\(\s*([0-9.-]+)\s*,\s([0-9.-]+)\s*\)/g")
Nach dem Login kopieren

Stattdessen hätte es ein Regex-Literal sein sollen verwendet:

var reg = /\(\s*([0-9.-]+)\s*,\s([0-9.-]+)\s*\)/g;
Nach dem Login kopieren
  1. Trennzeichen sind nicht Teil des Ausdrucks und sollten nicht enthalten sein.
  2. Regex-Literale sind praktischer und helfen, potenzielle Backslash-Probleme zu vermeiden.

Analyse der Regex-Ausgabe:

Um den Regex besser zu verstehen, kann man ihn ausgeben Muster mithilfe der Konsole:

/(s*([0-9.-]+)s*,s([0-9.-]+)s*)/g
Nach dem Login kopieren

Dies zeigt, dass der Ausdruck mit den Literalen „s“, „g“ und Parens wörtlich übereinstimmt, was nicht das beabsichtigte Verhalten ist.

Überlegungen zur Array-Ausgabe:

Es ist wichtig zu beachten, dass match() ein Array von zurückgibt Übereinstimmungen:

["(25.774252, -80.190262)", "(18.466465, -66.118292)", ... ]
Nach dem Login kopieren

Um die einzelnen Zahlen zu extrahieren, sollte stattdessen exec() verwendet werden:

["(25.774252, -80.190262)", "25.774252", "-80.190262"]
Nach dem Login kopieren

Der unäre Plusoperator ( ) kann dann verwendet werden, um Zeichenfolgen in Zahlen umzuwandeln.

Vollständiger Code:

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]]);
}
Nach dem Login kopieren

Dieser Code erstellt ein Array von Arrays Enthält die extrahierten Koordinaten als Zahlen.

Das obige ist der detaillierte Inhalt vonWarum können meine JavaScript-Regexes keine Koordinaten extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage