如何验证输入输入字段是否为laravel中IP地址的格式?

时间:2017-07-05 08:23:05

标签: php laravel

实际上我想在表单中验证某种版本字段。 例如,在输入字段中,用户应输入字符串,如' 108.111.154.250 '即。 它应该是四个用点分割的段,每个段不应超过250个。

如果它从验证失败,它应该抛出一条错误信息。

当用户输入此字段的输入时,这就是我的验证方式。

2 个答案:

答案 0 :(得分:0)

试试这个

$ip = '108.111.154.250';
$ip_range = explode(".",$ip);
foreach ($ip_range as $value) {
    if($value>=0 && $value<=255)
    { /* Do something */ }
    else
    { /* Not Valid IP */ }
}

答案 1 :(得分:0)

您可以使用laravel's validators

将此添加到您的服务提供商。

$validator = resolve(Illuminate\Validation\Factory::class);
$validator->extend("myversion", function ($attribute, $value, $parameters) {
     $parts = collect(explode(".", $value));
     return $parts->count() == $parts->filter(function ($v) {
         return is_numeric($v) && $v < 250;
     })->count(); //Check if the segments that are numeric and less than 250 are exactly 4 
});

然后您可以使用此规则:

 $validator = Validator::make($arrayToValidate, [
      "version" => "myversion"
 ]);

 if ($valitator->fails()) { 
     //error
 }