URL-Segmente verknüpfen

JavaScriptJavaScriptBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir untersuchen, wie man URL-Segmente verknüpft und die resultierende URL mit JavaScript normalisiert. Das Lab führt Sie durch den Prozess der Verwendung verschiedener regulärer Ausdrücke, um doppelte Schrägstriche zu entfernen, die richtigen Schrägstriche für das Protokoll hinzuzufügen, Schrägstriche vor Parametern zu entfernen, Parameter mit '&' zu kombinieren und den ersten Parametertrenner zu normalisieren. Am Ende dieses Labs werden Sie in der Lage sein, URL-Segmente mit JavaScript effizient zu verknüpfen und zu normalisieren.

URL-Segmente verknüpfen und normalisieren

Um gegebene URL-Segmente zusammenzufügen und die resultierende URL zu normalisieren, folgen Sie den Schritten unten:

  1. Verwenden Sie Array.prototype.join(), um URL-Segmente zu kombinieren.
  2. Verwenden Sie eine Reihe von String.prototype.replace()-Aufrufen mit verschiedenen regulären Ausdrücken, um die resultierende URL zu normalisieren, indem Sie:
    • Doppelte Schrägstriche entfernen
    • Die richtigen Schrägstriche für das Protokoll hinzufügen
    • Schrägstriche vor Parametern entfernen
    • Parameter mit '&' kombinieren und den ersten Parametertrenner normalisieren.

Verwenden Sie den folgenden Codeausschnitt, um URL-Segmente zu verknüpfen und zu normalisieren:

const URLJoin = (...args) =>
  args
    .join("/")
    .replace(/[\/]+/g, "/")
    .replace(/^(.+):\//, "$1://")
    .replace(/^file:/, "file:/")
    .replace(/\/(\?|&|#[^!])/g, "$1")
    .replace(/\?/g, "&")
    .replace("&", "?");

Beispielverwendung:

URLJoin("http://www.google.com", "a", "/b/cd", "?foo=123", "?bar=foo");
// 'http://www.google.com/a/b/cd?foo=123&bar=foo'

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab "URL-Segmente verknüpfen" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.