北京网帮你
laravel5之自定义验证规则15位18位身份证验证(教程)
时间:2016-11-02 23:36:21 浏览:2452

laravel5之自定义验证规则15位18位身份证验证(教程)

看了白天的官方文档,没看懂最终通过实践,最终出来了.

注:laravel5之自定义验证15位18位身份证用(regex:pattern模式)不行的,因为laravel 不能使用管道分隔符(|).放弃这种模式,这种模式只能正则到一种,所以就得用laravel手动注册表验证规则.例如:

1.先准备15位18位身份证正则表达式。

'/(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))

(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$)/'

2.注册到服务中,用的是laravel自带的服务文件,无需添加服务文件。

app\Providers\AppServiceProvider.php

在文件中的boot方法中添加

public function boot()
{

  Validator::extend('identitycards', function($attribute, $value, $parameters)


    {

return preg_match('/(^[1-9]\d{5}(18|19|([23]\d))\d{2}

((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$)/', $value);

    });
}

3.自定义验证错误信息,找到resources\lang\zh-CN\validation.php文件

在return中添加

'identitycards' => '身份证号错误!',

这样就注册好了。

现在开始始用,在你需要的地方使用,和laravel提供的验证一样如下

'icards' => 'required|identitycards

注:

identitycards这个命名就是新的验证规则可自定义()但三个地方都得

一致。




[上一篇]thinkphp 多表关联模型查询relati
[下一篇]没有了

Copyright 2014 wbnsp.com copyright, all rights reserved

2014 版权所有 红花岗区网帮你信息技术工作室

工信部备案号: 黔ICP备14004469号

扫描二维码用手机发部信息