krazydanny/laravel-validator

一个具有许多有用附加规则的扩展 Laravel 验证器!

v1.0.4 2020-12-12 13:22 UTC

This package is auto-updated.

Last update: 2024-09-24 22:07:49 UTC


README

Latest Stable Version Donate License

此包提供了一个具有许多有用附加规则的扩展 Laravel 验证器!


主要优势

节省时间

扩展 Laravel 的出色内置验证器,使用常用验证规则,避免您在网上搜索“黄金正则表达式”并自己扩展验证器 :)

只需注册服务提供程序,规则即可使用!

独家验证规则

一些难以找到的验证规则可供您使用,就像它们是 Laravel 的一部分一样。


安装

唯一的要求是您有一个 Laravel 或 Lumen 项目。我假设您已经熟悉其中之一,否则这里有一些关于这个伟大框架的文档

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

迭代数组值,验证每个元素是否与给定的正则表达式匹配。

语法

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'