fxmonster/validation

Laravel 框架的额外验证函数

dev-master 2022-11-15 09:40 UTC

This package is not auto-updated.

Last update: 2024-10-02 17:08:25 UTC


README

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

Latest Version build Monthly Downloads

安装

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

通过 Composer 需求该包

$ composer require intervention/validation

Laravel 集成(可选)

验证库是为与 Laravel 框架(>=5.5)一起使用而构建的。它包含一个服务提供者,该提供者将被自动发现并将验证规则注册到您的安装中。

使用方法

use Intervention\Validation\Validator;
use Intervention\Validation\Rules\HexColor;
use Intervention\Validation\Exception\ValidationException;

// create validator (for HexColor)
$validator = new Validator(new HexColor);

// validate against given values
$valid = $validator->validate('#ccc'); // true
$valid = $validator->validate('www'); // false

// change the validation rule
$validator->setRule(new Domainname);

// now validate new rule domainname
$valid = $validator->validate('foo.com'); // true
$valid = $validator->validate('?'); // false

// validator can also throw exceptions on invalid data. 
// just call assert() instead of validate().
try {
    $validator->assert('foobar');
} catch (ValidationException $e) {
    echo $e->getMessage();
}

静态使用

use Intervention\Validation\Validator;
use Intervention\Validation\Rules\HexColor;
use Intervention\Validation\Exception\ValidationException;

// create validator statically
$valid = Validator::make(new HexColor)->validate('ccc'); // true
$valid = Validator::make(new HexColor)->validate('#www'); // false

// throw exceptions on invalid data instead of returning boolean
try {
    Validator::make(new HexColor)->assert('www');
} catch (ValidationException $e) {
    echo $e->getMessage();
}

静态动态调用使用

use Intervention\Validation\Validator;
use Intervention\Validation\Rules\HexColor;
use Intervention\Validation\Exception\ValidationException;

// call validation rule directly via static method
$valid = Validator::isHexColor('#ccc'); // true
$valid = Validator::isHexColor('#www'); // false

// throw exceptions on invalid data
try {
    Validator::assertHexColor('foo');
} catch (ValidationException $e) {
    echo $e->getMessage();
}

与 Laravel 一起使用

已安装的包提供额外的 验证规则,包括它们的错误消息。

use Illuminate\Support\Facades\Validator;
use Intervention\Validation\Rules\Creditcard;

$validator = Validator::make($request->all(), [
    'color' => 'required|hexcolor',
    'number' => 'iban',
    'ccnumber' => new Creditcard(), // passing rules as objects is also possible
]);

更改错误消息

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

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

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

可用规则

以下验证规则可用。

base64 (Intervention\Validation\Rules\Base64)

检查给定的值是否为 Base64 编码

bic (Intervention\Validation\Rules\Bic)

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

camelcase (Intervention\Validation\Rules\CamelCase)

给定的字段必须格式化为 驼峰式

cidr (Intervention\Validation\Rules\Cidr)

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

creditcard (Intervention\Validation\Rules\Creditcard)

给定的字段必须是有效的 信用卡号

data url (Intervention\Validation\Rules\DataUrl)

给定的字段必须是有效的 数据 URL

domainname (Intervention\Validation\Rules\Domainname)

给定的字段必须是一个格式良好的 域名

ean (Intervention\Validation\Rules\Ean)

检查有效的 欧洲文章号 (EAN-8 和 EAN-13)。

gtin (Intervention\Validation\Rules\Gtin)

检查有效的 全球贸易项目编号 (GTIN-8, GTIN-12, GTIN-13 或 GTIN-14)。

hexcolor (Intervention\Validation\Rules\HexColor)

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

htmlclean (Intervention\Validation\Rules\HtmlClean)

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

iban (Intervention\Validation\Rules\Iban)

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

imei (Intervention\Validation\Rules\Imei)

给定的字段必须是 国际移动设备身份 (IMEI)。

isbn (Intervention\Validation\Rules\Isbn)

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

isin (Intervention\Validation\Rules\Isin)

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

issn (Intervention\Validation\Rules\Issn)

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

jwt (Intervention\Validation\Rules\Jwt)

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

kebabcase (Intervention\Validation\Rules\KebabCase)

给定值必须格式化为短横线大小写

lowercase (Intervention\Validation\Rules\LowerCase)

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

luhn (Intervention\Validation\Rules\Luhn)

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

macaddress (Intervention\Validation\Rules\MacAddress)

正在验证的字段必须是媒体访问控制地址 (MAC地址)。

semver (Intervention\Validation\Rules\SemVer)

给定字段必须使用语义化版本控制的有效版本号。

slug (Intervention\Validation\Rules\Slug)

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

snakecase (Intervention\Validation\Rules\SnakeCase)

正在验证的字段必须格式化为蛇形大小写文本。

titlecase (Intervention\Validation\Rules\TitleCase)

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

ulid (Intervention\Validation\Rules\Ulid)

给定字段必须是一个有效的通用唯一字典序排序标识符

uppercase (Intervention\Validation\Rules\UpperCase)

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

username (Intervention\Validation\Rules\Username)

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

许可证

Intervention Validation遵循MIT许可证