2017-07-05 4 views
-3

Eigentlich möchte ich eine Art von Version Feld in meiner Form validieren. Für z. B. in den Eingabefeldern sollte der Benutzer die Zeichenkette wie ‚108.111.154.250‘ ie eingeben., soll es aus vier Segmenten sein mit Punkten gespaltet und jedes Segment über 250.Wie kann man überprüfen, ob das Eingabefeld das IP-Adressformat in Laravel hat?

nicht überschreiten

Und wenn es von der Validierung fehlschlägt, sollte es eine Fehlermeldung ausgeben.

So sollte meine Validierung erfolgen, während der Benutzer die Eingabe dieses Feldes eingibt.

+3

Willkommen bei Stackoverflow. Leider ist dies weder ein kostenloser Beratungs-/Design-/Coding- oder Debugging-Service noch eine Tutorial-Seite oder ein Ersatz für eine Web-Suche. Wir können helfen, [bestimmte Probleme] zu lösen (https://stackoverflow.com/help/on-topic), aber es ist ** Ihr ** Job, ** [etwas Mühe] (http://meta.stackoverflow.com)/questions/261592) ** zum Thema in erster Linie, einschließlich elementarer ** [(re) search] (https://google.com/) **. –

+2

Hallo und Willkommen zu Stackoverflow. Wir sind hier, um Ihnen bei bestimmten Programmierproblemen zu helfen, nicht um für Sie zu programmieren. Zeig uns, was du bisher versucht hast, teile deine Gedanken mit uns und wir helfen dir, aber niemand wird Code für dich schreiben. Als Hinweis: Sie können dies mit Regex erreichen. – Twinfriends

+0

$ data = explode (",", $ ip); // explodierende Daten $ rules = array ( 'erforderlich', 'erforderlich', 'erforderlich | email | unique: Benutzer, E-Mail' ); –

Antwort

0

Versuchen Sie, diese

$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 */ } 
} 
+0

Thankyou Sir, ich helfe mir viel. Aber anstatt es als Array-Werte mit für jede Schleife zu überprüfen, ist es möglich, mit zu tun, während –

+0

Auch ist es das gleiche wie ich mit while Schleife. Aber ich muss Redirect-Anweisung in der Fall geben, wenn –

+0

In diesem Fall leitet es oft aufgrund Foreach –

0

Sie laravel's validators verwenden können:

Fügen Sie diese auf Ihrem Diensteanbieter.

$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 
}); 

Dann können Sie diese Regel verwenden:

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

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