„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich meinen regulären Ausdruck verbessern, um URLs effektiver zuzuordnen?

Wie kann ich meinen regulären Ausdruck verbessern, um URLs effektiver zuzuordnen?

Veröffentlicht am 14.12.2024
Durchsuche:353

How Can I Improve My Regular Expression to Match URLs More Effectively?

Verbesserter regulärer Ausdruck für übereinstimmende URLs

Beim Versuch, URLs aus Benutzereingaben zu erkennen und zu analysieren, ist es wichtig, einen effektiven regulären Ausdruck zu verwenden. In Ihrem Fall erfasst Ihr aktueller Ausdruck zwar einige URL-Formate, berücksichtigt jedoch keine URLs, denen ein explizites Protokollschema fehlt, wie z. B. www.google.com.

Überarbeiteter regulärer Ausdruck

Um dieses Problem zu beheben und einen umfassenden URL-Abgleich sicherzustellen, sollten Sie die Verwendung der folgenden überarbeiteten Regel in Betracht ziehen Ausdruck:

^(?=\S{1,255}$)(https?://)?[-a-zA-Z0-9@:%._\ ~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\ .~#?&//=]*)

Anatomie des Regex

  • Anker: Stellt sicher, dass das Match beginnt und beendet die gesamte Zeichenfolge.
  • Protokoll (Optional): Erfasst das optionale „http“ oder Protokollschema „https“ Portnummer (z. B. „:8080“).
  • Pfad: Erfasst alle Pfadinformationen nach dem Domäne (z. B. „/index.html“).
  • Abfrage: Erfasst die Parameter der Abfragezeichenfolge (z. B. „?name=John“).
  • Fragment: Erfasst die Fragment-ID (z. B. „#footer“).
  • Dieser überarbeitete reguläre Ausdruck ist kleiner restriktiv und gleicht erfolgreich URLs wie www.google.com sowie solche mit expliziten Protokollen (z. B. http://www.stackoverflow.com) ab.
  • Beispielimplementierung (JavaScript)
  • const regex = new RegExp(/(?=\S{1,255}$)(https?://)?[-a-zA-Z0-9@:%._\ ~#=]{1,256}\.[a-zA- Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\ .~#?&//=]*)g); const url = 'www.google.com'; if (url.match(regex)) { console.log("URL erfolgreich abgeglichen."); } anders { console.log("URL stimmte nicht überein."); }
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3