Heim  >  Artikel  >  Web-Frontend  >  Gibt es eine robuste, Regex-freie Möglichkeit, URLs in JavaScript zu validieren?

Gibt es eine robuste, Regex-freie Möglichkeit, URLs in JavaScript zu validieren?

Barbara Streisand
Barbara StreisandOriginal
2024-11-11 21:34:03566Durchsuche

Is There a Robust, Regex-Free Way to Validate URLs in JavaScript?

Robuste URL-Validierung in JavaScript

JavaScript bietet mehrere nützliche Tools zum Bearbeiten und Validieren von Zeichenfolgen. In diesem Artikel konzentrieren wir uns speziell auf die Überprüfung, ob eine bestimmte Zeichenfolge eine gültige URL darstellt, wobei wir die Verwendung regulärer Ausdrücke ausschließen.

Bestimmen der Gültigkeit

Zur Bestimmung der Gültigkeit einer URL können wir den URL-Konstruktor verwenden. Wenn eine fehlerhafte URL auftritt, gibt dieser Konstruktor einen Fehler aus. Hier ist eine JavaScript-Funktion, die diesen Ansatz verwendet:

function isValidHttpUrl(string) {
  let url;

  try {
    url = new URL(string);
  } catch (_) {
    return false;
  }

  return url.protocol === "http:" || url.protocol === "https:";
}

Es ist jedoch wichtig zu beachten, dass diese Methode nur das Vorhandensein eines Schemas (z. B. „http“ oder „https“) prüft, wie von definiert RFC 3886. Daher gelten die folgenden Szenarien als gültige URLs:

  • www.example.com (Schema ist fehlt)
  • javascript:void(0) (Nicht-HTTP-Schema)
  • http://.. (Host ist „..“)
  • https:// example..com (Host enthält „..“)

Das obige ist der detaillierte Inhalt vonGibt es eine robuste, Regex-freie Möglichkeit, URLs in JavaScript zu validieren?. 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