marshmallow/validation


README

Marshmallow Validation 是 Laravel 自身验证系统的扩展库。该包添加了验证数据(如 IBAN、BIC、ISBN、信用卡号码等)的规则。

Latest Version Tests Monthly Downloads

安装

您可以使用 Composer 快速轻松地安装此包。

通过 Composer 需求包

$ composer require marshmallow/validation

Laravel 集成

验证库是为与 Laravel 框架(>=10)一起使用而构建的。它包含一个服务提供程序,该提供程序将被自动发现并将验证规则注册到您的安装中。该包提供了 30 个附加验证规则,包括多语言错误消息,可以像 Laravel 自身验证规则一样使用。

use Illuminate\Support\Facades\Validator;
use Marshmallow\Validation\Rules\Creditcard;
use Marshmallow\Validation\Rules\Hexadecimalcolor;
use Marshmallow\Validation\Rules\Username;

$validator = Validator::make($request->all(), [
    'color' => new Hexadecimalcolor([3, 6]), // pass rule as object
    'number' => ['required', 'creditcard'], // or pass rule as string
    'name' => 'required|min:3|max:20|username', // combining rules works as well
]);

更改错误消息

将相应的键添加到 /resources/lang/<language>/validation.php 中,如下所示

// example
'iban' => 'Please enter IBAN number!',

或直接将自定义消息添加到验证器中,如文档中所述

可用规则

以下验证规则与此包一起提供。

Base64 编码字符串

正在验证的字段必须是 Base64 编码

public Marshmallow\Validation\Rules\Base64::__construct()

商业标识代码 (BIC)

检查有效的 商业标识代码 (BIC)。

public Marshmallow\Validation\Rules\Bic::__construct()

驼峰式字符串

正在验证的字段必须格式化为 驼峰式

public Marshmallow\Validation\Rules\Camelcase::__construct()

无类域间路由 (CIDR)

检查值是否为 无类域间路由 表示法(CIDR)。

public Marshmallow\Validation\Rules\Cidr::__construct()

信用卡号码

正在验证的字段必须是有效的 信用卡号码

public Marshmallow\Validation\Rules\Creditcard::__construct()

数据 URI 方案

正在验证的字段必须是有效的 数据 URI

public Marshmallow\Validation\Rules\DataUri::__construct(?array $media_types = null)

域名

正在验证的字段必须是格式良好的 域名

public Marshmallow\Validation\Rules\Domainname::__construct()

欧洲商品编号 (EAN)

检查有效的 欧洲商品编号

public Marshmallow\Validation\Rules\Ean::__construct(array $lengths = [8, 13])

参数

length

可选整数长度(8 或 13),仅检查 EAN-8 或 EAN-13。

全球贸易项目编号 (GTIN)

检查有效的 全球贸易项目编号

public Marshmallow\Validation\Rules\Gtin::__construct(array $lengths = [8, 12, 13, 14])

参数

length

可选的允许长度数组,仅检查特定类型(GTIN-8、GTIN-12、GTIN-13 或 GTIN-14)。

十六进制颜色代码

正在验证的字段必须是有效的 十六进制颜色代码

public Marshmallow\Validation\Rules\Hexadecimalcolor::__construct(array $lengths = [3, 4, 6, 8])

参数

length

可选的整数长度,仅检查短格式(3 或 4 个字符)或完整十六进制格式(6 或 8 个字符)。

无 HTML 文本

正在验证的字段必须不含任何 HTML 代码。

public Marshmallow\Validation\Rules\HtmlClean::__construct()

国际银行账户号码 (IBAN)

检查有效的国际银行账户号码 (IBAN)。

public Marshmallow\Validation\Rules\Iban::__construct()

国际移动设备身份码 (IMEI)

正在验证的字段必须是国际移动设备身份码 (IMEI)。

public Marshmallow\Validation\Rules\Imei::__construct()

国际标准书号 (ISBN)

正在验证的字段必须是有效的国际标准书号 (ISBN)。

public Marshmallow\Validation\Rules\Isbn::__construct(array $lengths = [10, 13])

参数

length

可选的长度参数作为整数,以仅检查ISBN-10或ISBN-13。

国际证券识别码 (ISIN)

检查有效的国际证券识别码 (ISIN)。

public Marshmallow\Validation\Rules\Isin::__construct()

国际标准连续出版物编号 (ISSN)

检查有效的国际标准连续出版物编号 (ISSN)。

public Marshmallow\Validation\Rules\Issn::__construct()

JSON Web Token (JWT)

给定的值必须是格式为JSON Web Token的值。

public Marshmallow\Validation\Rules\Jwt::__construct()

短划线命名法字符串

给定的值必须格式化为短划线命名法

public Marshmallow\Validation\Rules\Kebabcase::__construct()

小写字符串

给定的值必须是全部小写字母。

public Marshmallow\Validation\Rules\Lowercase::__construct()

Luhn算法

给定的值必须通过其包含的Luhn算法校验位验证。

public Marshmallow\Validation\Rules\Luhn::__construct()

媒体(MIME)类型

检查有效的Mime类型(媒体类型)。

public Marshmallow\Validation\Rules\MimeType::__construct()

邮政编码

正在验证的字段必须是给定国家的邮政编码

public Marshmallow\Validation\Rules\Postalcode::__construct(array $countrycodes = [])

参数

countrycode

ISO-639-1格式的国家代码。

邮政编码(静态实例化)

public static Marshmallow\Validation\Rules\Postalcode::countrycode(array $countrycodes): Postalcode

参数

countrycode

ISO-639-1格式的国家代码。

邮政编码(静态实例化与引用)

public static Marshmallow\Validation\Rules\Postalcode::reference(string $reference): Postalcode

参数

参考

参考键以从验证器中的其他数据获取ISO-639-1国家代码。

语义版本号

正在验证的字段必须使用语义版本化的有效版本号。

public Marshmallow\Validation\Rules\SemVer::__construct()

SEO友好的短文本(缩写)

正在验证的字段必须是一个用户和SEO友好的短文本

public Marshmallow\Validation\Rules\Slug::__construct()

蛇形命名法字符串

正在验证的字段必须格式化为蛇形命名法文本。

public Marshmallow\Validation\Rules\Snakecase::__construct()

标题大小写字符串

正在验证的字段必须格式化为标题大小写

public Marshmallow\Validation\Rules\Titlecase::__construct()

通用唯一排序标识符 (ULID)

正在验证的字段必须是一个有效的通用唯一排序标识符

public Marshmallow\Validation\Rules\Ulid::__construct()

大写字符串

正在验证的字段必须全部为大写。

public Marshmallow\Validation\Rules\Uppercase::__construct()

用户名

正在验证的字段必须是一个有效的用户名。由字母数字字符、下划线、减号组成,以字母开头。不允许多个下划线和减号字符。下划线和减号字符不允许在开头或结尾。

public Marshmallow\Validation\Rules\Username::__construct()

开发与测试

本包附带一个Docker镜像,用于构建测试套件容器。要构建此容器,您必须在系统上安装Docker。您可以使用此命令运行所有测试。

$ docker-compose run --rm --build tests

许可证

Marshmallow 验证库遵循 MIT 许可协议