So funktioniert das Muster
| Teil | Bedeutung |
|---|---|
^https? | Beginnt mit http, optional gefolgt von s |
:\/\/ | Das wörtliche :// (Schrägstriche für JavaScript-Regex-Literale escaped) |
[A-Za-z0-9.-]+ | Hostname und Subdomains |
\.[A-Za-z]{2,} | Ein Punkt und eine Top-Level-Domain mit mindestens zwei Buchstaben |
(?::\d{1,5})? | Ein optionaler Port wie :8080 |
(?:\/[^\s]*)? | Ein optionaler Pfad, Query-String und Fragment — alles bis zum nächsten Leerzeichen |
$ | Ende des Strings |
Code-Beispiele
JavaScript
const re = /^https?:\/\/[A-Za-z0-9.-]+\.[A-Za-z]{2,}(?::\d{1,5})?(?:\/[^\s]*)?$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'https?://[A-Za-z0-9.-]+\.[A-Za-z]{2,}(?::\d{1,5})?(?:/[^\s]*)?', value))PHP
preg_match('/^https?:\/\/[A-Za-z0-9.-]+\.[A-Za-z]{2,}(?::\d{1,5})?(?:\/[^\s]*)?$/', $value) === 1;
Hinweise und Einschränkungen
Zur Validierung in JavaScript ist new URL(value) in einem try/catch strenger und deckt jeden Randfall ab. Nutze den Regex, wenn du zusätzlich http(s) und eine öffentlich wirkende Domain verlangen willst. Er lehnt localhost und reine IP-Adressen bewusst ab.
Regex-Tester
Gib ein Muster ein und sieh zu, wie Übereinstimmungen in deinem Testtext in Echtzeit hervorgehoben werden.