在laravel 5.5之后,您可以创建自己的自定义验证规则对象。
要创建新规则,只需运行Artisan命令:

php artisan make:rule Id

laravel将把新的rule类放在app/Rules目录中
自定义对象验证规则的示例可能类似于:

<?php
namespace App\Rules;use Illuminate\Contracts\Validation\Rule;class Id implements Rule
{private $message;/*** Determine if the validation rule passes.** @param string $attribute* @param mixed  $value** @return bool*/public function passes($attribute, $value){if(!$this->isValidCard($value)){$this->message = '身份证格式错误,请输入正确的身份证.';return false;}return true;}/*** Get the validation error message.** @return string*/public function message(){return $this->message;}/*** 身份证验证* @param $id* @return bool*/private function isValidCard($id) {if(18 != strlen($id)) {return false;}$weight = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];$code = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];$mode = 0;$ver = substr($id, -1);if($ver == 'x') {$ver = 'X';}foreach($weight as $key => $val) {if($key == 17) {continue;}$digit = intval(substr($id, $key, 1));$mode += $digit * $val;}$mode %= 11;if($ver != $code[$mode]) {return false;}list($month, $day, $year) = self::getMDYFromCard($id);$check = checkdate($month, $day, $year);if(!$check) {return false;}$today = date('Ymd');$date = substr($id, 6, 8);if($date >= $today) {return false;}return true;}private  function getMDYFromCard($id) {$date = substr($id, 6, 8);$year = substr($date, 0, 4);$month = substr($date, 4, 2);$day = substr($date, 6);return [$month, $day, $year];}
}

在控制器里面引入:

$rules = ['buyer_name' => ['regex:/^[\p{Han}|\w]{2,30}$/u'],'buyer_id_number' => ['required', new Id],'buyer_telephone' => 'required|unique:investor',];

Laravel 中自定义 验证,例如身份证号验证相关推荐

  1. Java 身份证号验证

    二代身份证号码验证 扯淡区: 本博客主要内容是利用Java语言来验证身份证号码是否符合18位的二代身份证号规范. 公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次 ...

  2. 基于struts2框架-自定义身份证号验证器

    自定义拦截器的步骤: 1.定义一个验证器的类: > 自定义的验证器都需要实现 Validator接口.  > 可以选择继承 ValidatorSupport 或 FieldValidato ...

  3. python身份证号掩盖出生日期的代码_利用Python制作全国身份证号验证及查询系统!就问你吊不吊!...

    大家好哇,又是一个愉快的周末,今天本鸟给大家分享1个有趣的实战项目,用python制作"全国身份证号验证及查询系统",成品界面如下图: 本系统可以实现身份证号真伪验证,年龄.性别及 ...

  4. 手机号 ,邮箱,固定电话js验证,身份证号(正则表达式)

    固定电话: var myreg =/^((1[0-9]{10})|(((([0-9]{3}-)?[0-9]{8})|(([0-9]{4}-)?[0-9]{7}))(-[0-9]{1,4})?))$/; ...

  5. 利用python实现身份证号验证系统

    大家好哇,又是一个愉快的周末,今天本鸟给大家分享1个有趣的实战项目,用python制作"全国身份证号验证及查询系统",成品界面如下图: 本系统可以实现身份证号真伪验证,年龄.性别及 ...

  6. python身份证验证系统_利用Python制作全国身份证号验证及查询系统!就问你吊不吊!...

    大家好哇,又是一个愉快的周末,今天本鸟给大家分享1个有趣的实战项目,用python制作"全国身份证号验证及查询系统",成品界面如下图: 本系统可以实现身份证号真伪验证,年龄.性别及 ...

  7. 用python制作全国身份证号验证及查询系统

    ​ 大家好哇,又是一个愉快的周末,今天本鸟给大家分享1个有趣的实战项目,用python制作"全国身份证号验证及查询系统",成品界面如下图: 本系统可以实现身份证号真伪验证,年龄.性 ...

  8. 【趣味案例】用python制作全国身份证号验证及查询系统

    今天给大家分享1个有趣的实战项目,用python制作"全国身份证号验证及查询系统",成品界面如下图: 本系统可以实现身份证号真伪验证,年龄.性别及发证地查询,看起来是不是很高大上, ...

  9. vue 验证公民身份证号 并 自动 获取 性别、年龄、生日

    vue 验证公民身份证号 并 自动 获取 性别.年龄.生日 第一种方式: <template><el-form :model="baseInfo" ref=&qu ...

  10. PHP 身份证号验证是否是真实的

    已测试,90%左右的身份证号都可以检验出来是否是真实的身份证号,如果要求不高的话,可以不用在使用第三方的身份证号验证了封装的model 可以直接使用的 大家可以借鉴看一下,有问题可以及时指出 < ...

最新文章

  1. 路遥知马力——Momentum动量梯度
  2. 第11章 AOF持久化
  3. 《iOS应用开发指南——使用HTML5、CSS3和JavaScript》——导读
  4. JS面向对象一:MVC的面向对象封装
  5. PostgreSQL增强版命令行客户端(pgcli)
  6. 正在搜索需要的文件_【数澜发布-澜寻】智能内容搜索引擎,释放“机器阅读” 潜力...
  7. 修改系统Documents and Settings目录的位置
  8. MSP430程序库二UART异步串口
  9. iOS 数据持久化 NSUserDefault
  10. MFC中获取各个窗口(对话框)之间的指针、对象、句柄
  11. RT-thread 环境下使用 HASH hwcrypto 配置使用底层硬件HAH库问题记录
  12. datav可视化大屏使用教程
  13. 关于Oracle官网需要登录Oracle账户问题(亲测有效)
  14. 一起来Fit TDMA over WiFi
  15. 查看树莓派I2C设备是否正常
  16. PCIE——第5章——Montevina 的 MCH 和 ICH
  17. Linux服务器绑定mac与ip,Linux实现ip和mac绑定
  18. 【报告分享】小红书平台2021 11.11期间行业投放分析报告-千瓜数据(附下载)
  19. java.awt.Color 颜色代码对照表
  20. android文件管理器u盘,Android U盘文件显示在文件管理器

热门文章

  1. 【持续更新】七自由度解析解
  2. 什么是端口(port)?
  3. Python 时间整点判断
  4. 不辨不明,智能安全分析才是解决安全问题的王道
  5. MySQL45讲(第16-21讲)
  6. GPU类型数据与CPU类型数据转换
  7. XMUOJ·小H的超大背包
  8. 在Ubuntu 14.04 上安装 Nginx-RTMP 流媒体服务器,并Android真机测试
  9. Stm32之RTC时钟(2021-07-26)
  10. MapReduce算法(计算出10月1日这天超速(超过120)的车辆,超速的次数,超速的详细时间)