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
Barbara StreisandOriginal
2024-12-04 19:01:18966Durchsuche

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

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

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

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

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

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

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

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!

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