jtn / laravel-validate-email-domain
验证电子邮件地址是否属于指定的域名
v1.1.0
2017-10-20 06:46 UTC
Requires
- illuminate/translation: ^5.5
- illuminate/validation: ^5.5
Requires (Dev)
- php: >=7.0.0
- phpunit/phpunit: 6.2.*
This package is auto-updated.
Last update: 2024-09-06 17:30:06 UTC
README
Laravel 5.5 的验证规则,用于验证给定的电子邮件地址是否属于提供的域名。
支持通配符域名和多个域名。
基本用法
如果你的类实现了 Laravel 的 ValidatesRequests
特性,你可以如下验证一个简单的域名。
use Jtn\EmailDomain;
$this->validate(request()->all(), [
'email' => ['email', new EmailDomain('example.com')]
])
此验证规则仅当提供的电子邮件地址为 @example.com
时通过。
通配符用法
$this->validate(request()->all(), [
'email' => ['email', new EmailDomain('*.example.com')]
])
此规则将匹配任何 mail.example.com
、test.example.com
等。要匹配 mail.test.example.com
,规则必须是 new EmailDomain('*.*.example.com')
。
匹配多个域名
要匹配多个域名,只需将接受域名的数组传递给构造函数。你可以传递任意数量的域名和通配符作为数组来检查它们。
$this->validate(request()->all(), [
'email' => [
'email',
new EmailDomain(['example.org', 'example.com'])
]
])
严格模式
可以禁用严格模式以匹配通配符域名。如果你希望匹配 example.com
下的所有子域名,这很有用。
以下示例将匹配 example.com
域名及其下的任何长度的子域名。
$domainRule = new EmailDomain(['example.com', ['*.example.com']]);
$this->validate(request()->all(), [
'email' => ['email', $domainRule->nonStrict()]
])
变更日志
1.1.0
- 添加对严格匹配的支持
1.0.0
- 首次发布,支持简单域名和通配符