Heim >Web-Frontend >js-Tutorial >Warum gibt mein JavaScript-Regex beim Abgleichen von Punkten Null zurück?

Warum gibt mein JavaScript-Regex beim Abgleichen von Punkten Null zurück?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-09 14:55:12734Durchsuche

Why Is My JavaScript Regex Returning Null When Matching Points?

Warum der JavaScript-Regex nicht funktioniert

Problem:

Sie stoßen auf ein Null-Ergebnis beim Versuch, eine Liste von Punkten in JavaScript mit einem regulären abzugleichen Ausdruck.

Regex-Ausdruck:

var reg = new RegExp("/\(\s*([0-9.-]+)\s*,\s([0-9.-]+)\s*\)/g");

Lösung:

  • Verwenden Sie einen regulären Ausdruck literal:
var reg = /\(\s*([0-9.-]+)\s*,\s([0-9.-]+)\s*\)/g;
  • Fehler bei der Verwendung von RegExp:

    • Trennzeichen (/) sollten nicht Teil sein des Ausdrucks.
    • Backslashes sollten mit Escapezeichen versehen werden, wenn der Ausdruck als definiert ist string.
    • Modifikatoren sollten als zweites Argument an die Funktion übergeben werden.

Hinweis:

While Die Verwendung von RegExp ist eine Option. Oft ist es bequemer, Regex-Literale zu verwenden.

Extrahieren Werte:

  • .match() gibt ein Array von Zeichenfolgen zurück, was möglicherweise nicht nützlich ist.
  • .exec() kann verwendet werden, um kontinuierlich Zahlen zu extrahieren, bis das Ganze erreicht ist Zeichenfolge wird verarbeitet:
var result, points = [];
while((result = reg.exec(polygons)) !== null) {
    points.push([+result[1], +result[2]]);
}

Dadurch wird ein Array von Arrays erstellt, die die extrahierten Zahlen enthalten. Das unäre Plus ( ) wandelt die Zeichenfolgen in Zahlen um.

Das obige ist der detaillierte Inhalt vonWarum gibt mein JavaScript-Regex beim Abgleichen von Punkten Null zurück?. 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