Regex for URL Validation — Pattern Explained with Examples
DodaTech
Updated 2026-06-20
2 min read
In this tutorial, you'll learn about Regex for URL Validation. We cover key concepts, practical examples, and best practices to help you understand and apply this topic effectively.
URL validation is essential wherever users input web addresses — social media profiles, link sharing, website fields, and CMS systems. This pattern checks for the standard URL structure including protocol, domain, optional path, query parameters, and fragment identifiers.
The Pattern
/^https?:\/\/([\w-]+\.)+[\w-]+(\/[\w\-./?%&=]*)?$/
Pattern Breakdown
| Part | Meaning |
|---|---|
^ |
Start-of-string anchor |
https? |
http or https protocol |
:\/\/ |
Literal colon and double slashes |
([\w-]+\.)+ |
Subdomain groups: one or more word/hyphen segments followed by a dot |
[\w-]+ |
Domain name (second-level) |
(\/[\w\-./?%&=]*)? |
Optional path including slashes, dots, query params, and fragments |
$ |
End-of-string anchor |
Matches
- https://example.com
- http://sub.domain.com/path?q=1
- https://example.com/page#section
- http://example.io
- https://api.example.org/v1/users?id=5&page=2
Does NOT Match
- example.com (missing protocol)
- http:///path (missing domain)
- ftp://server (wrong protocol prefix)
- https:// example.com (space in URL)
- http://.com (no domain name)
- https://exa_mple.com/invalid space (space in path)
Language Examples
JavaScript
const urlRegex = /^https?:\/\/([\w-]+\.)+[\w-]+(\/[\w\-./?%&=]*)?$/;
console.log(urlRegex.test('https://example.com')); // true
console.log(urlRegex.test('example.com')); // false
Python
import re
pattern = r'^https?:\/\/([\w-]+\.)+[\w-]+(\/[\w\-./?%&=]*)?$'
print(bool(re.match(pattern, 'https://example.com'))) # True
print(bool(re.match(pattern, 'example.com'))) # False
Java
import java.util.regex.Pattern;
public class UrlValidator {
private static final Pattern URL_PATTERN =
Pattern.compile("^https?://([\\w-]+\\.)+[\\w-]+(/[\\w\\-./?%&=]*)?$");
public static boolean isValid(String url) {
return URL_PATTERN.matcher(url).matches();
}
}
Common Pitfalls
- No single regex covers every valid URL format — edge cases like authentication (
user:pass@host), IPv6 literal hosts, and data URIs all need different patterns - Protocol-relative URLs (
//example.com) are valid in web contexts but will be rejected by a pattern requiringhttp://orhttps:// - Internationalized domain names (IDN) use non-ASCII characters that standard
\wdoes not match - Deep query strings with special characters like
+,&, and=may fail depending on the escape handling
Real-World Use Cases
- Link submission forms — validate user-submitted URLs before storing in a database or sharing on a platform
- SEO tools — check that sitemap entries and backlink lists contain properly formatted URLs
- API request validation — ensure incoming Webhook URLs or callback parameters are well-formed before making outbound requests
FAQ
Related Patterns
Regex for Email Regex for IPv4 Address
← Previous
CLR (Common Language Runtime) — Explained with Examples
Next →
Regex for IPv4 Address — Pattern Explained with Examples
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro