我正在使用laravel的验证器。我想验证信用卡到期日期。
输入有一个输入掩码99/99
- MM/YY
。
我想验证表达的年份。因此,如果 YY < 15 =验证失败。
如果 YY > 25 =验证失败。
提前谢谢!
答案 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',
]);
}