Domain
February 3, 2026 ยท View on GitHub
Domain()Domain(bool $tldCheck)
Validates whether the input is a valid domain name or not.
v::domain()->assert('google.com');
// Validation passes successfully
You can skip top level domain (TLD) checks to validate internal domain names:
v::domain(false)->assert('dev.machine.local');
// Validation passes successfully
This is a composite validator, it validates several validators internally:
- If input is an IP address, it fails.
- If input contains whitespace, it fails.
- If input does not contain any dots, it fails.
- If input has less than two parts, it fails.
- Input must end with a top-level-domain to pass (if not skipped).
- Each part must be alphanumeric and not start with an hyphen.
- PunnyCode is accepted for Internationalizing Domain Names in Applications.
Messages for this validator will reflect validators above.
Templates
Domain::TEMPLATE_STANDARD
| Mode | Template |
|---|---|
default | {{subject}} must be an internet domain |
inverted | {{subject}} must not be an internet domain |
Template placeholders
| Placeholder | Description |
|---|---|
subject | The validated input or the custom validator name (if specified). |
Categorization
- Internet
Changelog
| Version | Description |
|---|---|
| 3.0.0 | Templates changed |
| 0.6.0 | Allow to skip TLD check |
| 0.3.9 | Created |