40 条附加的 Laravel 表单验证规则

Laravel

Laravel 的验证系统有 60多个验证规则可用,但是如果你需要其他的功能怎么办?你可以 轻松创建自己的验证规则, 也可以使用互联网上已有的验证规则。让我们来看看。

来自 Alphametric 的22条规则

首先,我们从 Alphametric 的高级开发人员 Matt Kingshott 的一系列文章开始,他在 Medium 写了许多的帖子,并将所有规则添加到 Github存储库 中。以下是可用的规则列表:

  • StrongPassword: 检查是否是 “强” 类型的密码

  • TelephoneNumber: 检查是否是有效的电话号码

  • RecordOwner: 要求经过身份验证的用户 ID 与给定数据库记录中的user_id 列匹配,例如: 所有者:帖子,id

  • MonetaryFigure: 检查货币数字,例如: $ 72.33

  • DisposableEmail: 检查邮件地址是不是一次性的邮件地址

  • DoesNotExist: 检查给定的值是否存在数据库 表/列 中

  • Decimal: 检查是否具是有正确格式的十进制

  • EncodedImage: 检查值是否是给定 mime 类型的 base64 编码图像

  • LocationCoordinates: 检查是不是以逗号分隔开的一组经纬度坐标

  • FileExists: 检查值是不是一个已有的文件路径

  • Equals: 检查值是否等于另外一个值

  • MacAddress: 检查值是不是一个有效的 MAC 地址

  • ISBN: 检查值是不是有效的ISBN-10或ISBN-13数字

  • EndsWith: 检查值是不是以给定的字符串结尾

  • EvenNumber: 检查值是不是偶数(小数先使用 intval 进行类型强制转换)

  • OddNumber: 检查值是不是奇数(小数先使用 intval 进行类型强制转换)

  • Lowercase: 检查值是不是小写的字符串

  • Uppercase: 检查值是不是大写的字符串

  • Titlecase: 检查值是不是标题字符串

  • Domain: 检查值是不是一个合法域名 google.com, www.google.com

  • CitizenIdentification:检查值是不是合法的 美/法/英 国公民的身份证号

  • WithoutWhitespace: 检查值是否包含空格字符


来自 Scott Robinson 的 8 条规则

Scott Robinson 制定了另一套好的规则,他还为此创建了一个专门的网站 laravel-validation-rules.github.io。它有以下规则:

  • Colour: 值是不是颜色,目前仅支持十六进制代码。

  • Country Codes: 验证 2&3 个字符的 国家/地区 代码。

  • Credit Card: 验证值是不是合法的信用卡号及有效期和是否有效。

  • IP: 验证值 IP 地址是公共的还是私有的。支持 IPV4 和 IPV6。

  • Phone: 验证值是否满足电话号码格式。

  • Subdomain: 验证用户提交的自域名值是否已经存在与当前程序中。

  • Timezone: 验证时区值在系统时间日期数据库中是否有效。

  • US State: 验证值是不是美国的州/加拿大的省份。


Spatie 的 5 条规则

Spatie 在自己的 存储库 中提供了一些验证规则:

  • Authorized: 验证用户是否有权对某一个模型的实例执行功能。

  • CountryCode: 验证字段是不是一个有效的 ISO3166 国家/地区代码。

  • Enum: 验证值是不是属于给定枚举类的一部分, 例如  myclabs/php-enum.

  • ModelsExist: 验证输入数组中的所有值都作为给定模型类的属性存在。

  • Delimited: 验证字符串中是否有定界值, 例如 ‘sebastian@example.com, alex@example.com’中的@符


Pineco.de 的 5 条规则

最后是来自Gergő D. Nagy 在 2017 年 年末发表在 pineco 的一篇文章。 相关验证规则存储在 GitHub存储库。但是自那时起就没有再更新过,谨慎使用! 规则如下:

  • password:检查用户的密码。
  • Odd:检查值是不是奇数。
  • even: 检查值是不是偶数。
  • incremented:检查值是不是一个自增字段。
  • specific words:检查值是否包含特定单词。
  •  weekday:检查日期是不是一个合法的工作日。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laraveldaily.com/40-additional-l...

译文地址:https://learnku.com/laravel/t/39365

本帖已被设为精华帖!
本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 4
Summer

DisposableEmail 这个好,论坛之前有好多用户注册邮箱就是这类邮箱,当时弄得很头痛

4年前 评论
largezhou 4年前

仔细看了一遍,有用

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!