jtn/laravel-validate-email-domain

验证电子邮件地址是否属于指定的域名

v1.1.0 2017-10-20 06:46 UTC

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.comtest.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

  • 首次发布,支持简单域名和通配符