Regex for URL Validation — Pattern Explained with Examples
DodaTech
Updated Jun 20, 2026
2 min read
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'))) # FalseJava
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
Regex for International Phone Numbers — Pattern Explained with Examples
Next
Regex for IPv4 Address — Pattern Explained with Examples
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro