krazydanny / laravel-validator
一个具有许多有用附加规则的扩展 Laravel 验证器!
This package is auto-updated.
Last update: 2024-09-24 22:07:49 UTC
README
此包提供了一个具有许多有用附加规则的扩展 Laravel 验证器!
主要优势
节省时间
扩展 Laravel 的出色内置验证器,使用常用验证规则,避免您在网上搜索“黄金正则表达式”并自己扩展验证器 :)
只需注册服务提供程序,规则即可使用!
独家验证规则
一些难以找到的验证规则可供您使用,就像它们是 Laravel 的一部分一样。
安装
唯一的要求是您有一个 Laravel 或 Lumen 项目。我假设您已经熟悉其中之一,否则这里有一些关于这个伟大框架的文档
- Laravel -> https://laravel.net.cn
- Lumen -> https://lumen.laravel.com
Laravel 版本兼容性
Lumen 版本兼容性
通过 Composer 安装此包
$ composer require krazydanny/laravel-validator
使用方法
我们只需要在我们的项目中注册服务提供程序,所有新规则即可使用 :)
$app->register( KrazyDanny\Laravel\Validation\ServiceProvider::class );
例如
$myValidator = Validator::make( $values, [ 'lat' => 'latitude', 'lng' => 'longitude', 'mac' => 'mac_address', ], $messages );
规则
以下是一个所有可用验证规则的列表
- array_of_regex
- alpha_blank
- boolean_strict
- camel_case
- color_hex
- date_gt_max
- date_gt_min
- date_lt_max
- date_lt_min
- document_number
- float
- geo_distance
- kebab_case
- latitude
- longitude
- mac_address
- object
- pascal_case
- snake_case
array_of_regex
迭代数组值,验证每个元素是否与给定的正则表达式匹配。
语法
array_of_regex
$myValidator = Validator::make( $values, [ 'attributes' => 'array_of_regex:/(some_regex)/', ], [ 'attributes.array_of_regex' => 'Some message', ] );
匹配示例
[ 'value A', 'value B', 'value C' ] []
不匹配示例
'value A, value B, value C' "[ 'value A', 'value B', 'value C' ]" "[]"
boolean_strict
检查值的数据类型是否严格为 bool。
语法
boolean_strict
$myValidator = Validator::make( $values, [ 'active' => 'boolean_strict', ], [ 'active.boolean_strict' => 'Some message', ] );
匹配示例
true
false
不匹配示例
1 0 'true' 'false'
camel_case
检查值是否使用 camelCase 表示法格式化为字符串。
语法
camel_case
$myValidator = Validator::make( $values, [ 'var_name' => 'camel_case', ], [ 'var_name.camel_case' => 'Some message', ] );
匹配示例
'camel', 'camelCase' 'camelCaseN' 'camelCaseNotation'
不匹配示例
'Camel', 'CamelCase', 'camelcase', 'NCamelCase'
color_hex
检查字符串是否表示十六进制颜色代码。
语法
color_hex
$myValidator = Validator::make( $values, [ 'color' => 'color_hex', 'colors' => 'color_hex', // also works with an array of values ], [ 'color.color_hex' => 'Some message', ] );
匹配示例
'#FFFFFF' '#FF3333' '#ffffff' '#5AD66A'
不匹配示例
'FFFFFF' '#FF33' '#FF3333A' '#'
date_gt_min
检查日期(值)是否大于另一个日期(第一个参数)至少给定的秒数(第二个参数)。
第三个参数(可选)可以是日期(值)的格式。
语法
date_gt_min:lower_date,diff_in_seconds,format
$myValidator = Validator::make( $values, [ 'start_at' => 'date_gt_min:2020-03-01 00:00:00,86400', ], [ 'start_at.date_gt_min' => 'Some message', ] );
date_gt_max
检查日期(值)是否大于另一个日期(第一个参数)给定的秒数一样多(第二个参数)。
第三个参数(可选)可以是日期(值)的格式。
语法
date_gt_max:lower_date,diff_in_seconds,format
$myValidator = Validator::make( $values, [ 'start_at' => 'date_gt_max:2020-03-01 00:00:00,86400', ], [ 'start_at.date_gt_max' => 'Some message', ] );
date_lt_min
检查日期(值)是否小于另一个日期(第一个参数)至少给定的秒数(第二个参数)。
第三个参数(可选)可以是日期(值)的格式。
语法
date_lt_min:greater_date,diff_in_seconds,format
$myValidator = Validator::make( $values, [ 'start_at' => 'date_lt_min:2020-03-01 00:00:00,86400', ], [ 'start_at.date_lt_min' => 'Some message', ] );
date_lt_max
检查日期(值)是否小于另一个日期(第一个参数)给定的秒数一样多(第二个参数)。
第三个参数(可选)可以是日期(值)的格式。
语法
date_lt_max:greater_date,diff_in_seconds,format
$myValidator = Validator::make( $values, [ 'start_at' => 'date_lt_max:2020-03-01 00:00:00,86400', ], [ 'start_at.date_lt_max' => 'Some message', ] );
document_number
检查值是否是任何类型文件或纸张的有效参考号码。
语法
$myValidator = Validator::make( $values, [ 'id_doc' => 'document_number', 'license_num' => 'document_number', 'passport_num' => 'document_number', ], [ 'passport_num.document_number' => 'Some message', ] );
匹配示例
'123123123123' 'abcabcabcabc' 'a1b2c3d4e5f6' '20-30764053-0' '20/30764053/0' '20 30764053 0' '20/3076 405-30' '20/3076.405-30' 'a1-b2c3d4e5f-6'
不匹配示例
'20--30764053-0' '20//30764053/0' '20 30764053 0' '20/3076..405-30' 'N° 23123123312' 'n° 23123123312' 'n°23123123312'
float
检查值是否是浮点数。使用 'strict' 参数还可以检查数据类型。
语法
$myValidator = Validator::make( $values, [ 'price' => 'float', 'rate' => 'float:strict', ], [ 'price.float' => 'Some message', 'rate.float' => 'Some message', ] );
匹配示例
0 100 0.00 0.01 100.00 100.01 '0' '100' '0.00' '0.01' '100.00' '100.01'
不匹配示例
'0,00' '100,00'
geo_distance
检查值是否是表示“地球距离”的整数。值可以在值末尾指定以下单位:“km” 或 “m”
语法
$myValidator = Validator::make( $values, [ 'distance' => 'geo_distance', 'radius' => 'geo_distance', ], [ 'distance.geo_distance' => 'Some message', 'radius.geo_distance' => 'Some message', ] );
匹配示例
0 100 1000 '0' '1m' '100km'
不匹配示例
-1 '-1m' '100k'
kebab_case
检查值是否使用 kebab-case 表示法格式化为字符串。
语法
kebab_case
$myValidator = Validator::make( $values, [ 'category' => 'kebab_case', ], [ 'category.kebab_case' => 'Some message', ] );
匹配示例
'kebabcase', 'kebab-case' 'kebab-case-notation'
不匹配示例
'kebabCase', 'kebab-Case', 'Kebab-case',
latitude
检查值是否是有效的纬度(介于 90 和 -90 度之间)。
语法
latitude
$myValidator = Validator::make( $values, [ 'lat' => 'latitude', ], [ 'lat.latitude' => 'Some message', ] );
匹配示例
1 90 -90 1.00, 30.010203 -67.50685 90.000000 -80.9999900000999
不匹配示例
91 -91 -100 180.00 90.00000000000001 -90.00000000000001
longitude
检查值是否是有效的经度(介于 180 和 -180 度之间)。
语法
longitude
$myValidator = Validator::make( $values, [ 'lng' => 'longitude', ], [ 'lng.longitude' => 'Some message', ] );
匹配示例
1 -180 180.00, 30.010203 -67.50685 90.000000 -179.9999900000999
不匹配示例
181 -181 188.99 200.000 180.00000000000001 -180.00000000000001
mac_address
检查值是否是有效的 IEEE 802 MAC 地址。
语法
mac_address
$myValidator = Validator::make( $values, [ 'mac_addr' => 'mac_address', ], [ 'mac_addr.mac_address' => 'Some message', ] );
匹配示例
'00:00:00:00:00:00' 'EE:EE:EE:EE:EE:EE' 'A1:01:A2:02:A3:03'
不匹配示例
000000000000 'A1:01:A2:02' 'A1.01.A2.02.A3.03' 'A1 01 A2 02 A3 03' 'A1:01:A2:02:A3:03:'
object
检查值是否是对象或表示对象的数组。
语法
object
$myValidator = Validator::make( $values, [ 'attributes' => 'object', ], [ 'attributes.object' => 'Some message', ] );
匹配示例
[ 'fieldA' => 'value A', 'fieldB' => "value B" ] new stdClass (object)[ 'field' => 'value' ]
不匹配示例
[ 'value A', 'value B' ] "{}"
pascal_case
检查值是否使用PascalCase表示法格式化的字符串。
语法
pascal_case
$myValidator = Validator::make( $values, [ 'class_name' => 'pascal_case', ], [ 'class_name.pascal_case' => 'Some message', ] );
匹配示例
'Pascal' 'Pascalcase' 'PascalCase' 'PascalCaseN' 'PascalCaseNotation'
不匹配示例
'pascal' 'pascalCase' 'pascalcase' 'nPascalCase'
snake_case
检查值是否使用snake_case表示法格式化的字符串。
语法
snake_case
$myValidator = Validator::make( $values, [ 'param_name' => 'snake_case', ], [ 'param_name.snake_case' => 'Some message', ] );
匹配示例
'snakecase' 'snake_case' 'snake_case_n' 'n_snake_case' 'snake_case_notation'
不匹配示例
'Snake_case' 'snake_Case' 'snake_CaseNotation' 'N_snake_case' 'snake_caseN' 'snake_case_N'