Laravel - 用于验证信用卡到期的正则表达式

时间:2015-09-26 16:21:26

标签: php regex validation

我正在使用laravel的验证器。我想验证信用卡到期日期。

输入有一个输入掩码99/99 - MM/YY。 我想验证表达的年份。因此,如果 YY < 15 =验证失败。

如果 YY > 25 =验证失败。

提前谢谢!

2 个答案:

答案 0 :(得分:2)

有一个库可以检查信用卡的所有数据

你通过composer

安装它
"require": {
    "inacho/php-credit-card-validator": "1.*"
},

然后你可以验证这样的日期;

$validDate = CreditCard::validDate('2013', '07'); // past date
var_dump($validDate);

或者如果您不想这样做,您可以在单独的字段中发送年份和月份(实际上您应该这样做),然后在验证程序中检查最小值和最大值number min:1|max:12 月份和

min:2015|max:2025 for year

更详细:

$validator = Validator::make(Input::all(),
                        array(
                            'month'  =>'required|max:12|min:1'                            
                            )
                        );     

            if($validator->fails())
               {
              Session::flash('flash_message', 'Check the date you entered');
              return Redirect::to('checkcreditcard')->withInput()->withErrors($validator);                 
               }            
           else
            {

更新:

这将以2位数字格式为您提供当前年份(因此它将给出,15)

$this_year = date("y");

然后在验证器中你可以做到:

min:$this_year|max:$this_year+10

slaba rossii !!

答案 1 :(得分:0)

您不需要正则表达式来执行此操作。只需看看official documentation。 (我指的是版本5.1,但它在以前的版本中大致相同)。

public function store(Request $request)
{
    $this->validate($request, [
        'year' => 'required|digits_between:15,25',
    ]);
}
相关问题