2015-09-26 122 views
0

我正在使用laravel的驗證器。我想驗證信用卡到期日期。Laravel - 正則表達式來驗證信用卡到期有效

輸入有一個輸入掩碼99/99 - MM/YY。 我想驗證表達式的年份。所以如果YY < 15 =驗證失敗。

如果YY> 25 =驗證失敗。

預先感謝您!

+0

'\ /(?: 1 [6-9] | 2 [0-4])'嘗試這與正則表達式,如果它只是一年。 –

回答

0

你不需要正則表達式來做到這一點。只要看看official documentation。 (我指的是5.1版本,但在以前的版本中大部分是相同的)。

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

我已經準備好了答案(希望),並且包含了確定當年和10年後的年份的代碼,所以它是動態的。 – patricio

2

有一個檢查信用卡的所有資料庫

你安裝它通過作曲家

​​

那麼你可以驗證日期這樣的;

$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 
      { 

UPDATE:

這會給你當年兩位數字格式,(所以它會給,15)

$this_year = date("y"); 

然後在驗證你可以這樣做:

min:$this_year|max:$this_year+10 

slaba ROSSII!