I have a form where I’m storing IP address. The form validations must have 3 conditions.
- Where the user has to enter the entire IP eg:(100.10.10.100)
- Where the user enters the first 2 parts and put a star * in the remaining fields eg: (100.10.*. *)
- Where the user enters the first 3 parts and put a star * in the last field eg:(100.10.10.*)
My form looks like this
JavaScript
x
<form method="post" class="get-ip" action="action.php" name="get-ip" id="get-ip">
<label for="ip-address">Enter IP Address</label>
<input type="text" class="ip-address" id="ip-address" name="ip-address">
<input type="submit" class="submit-ip" name="submit-ip" value="Submit IP">
</form>
My validation looks like this
JavaScript
if(isset($_POST["submit-ip"])){
$ip = $_POST["ip-address"];
$ipCheck = '/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/';
if(preg_match($ipCheck, $ip)){
/*Do something*/
}
}
This is how far I’ve been. I can validate if the IP is real or not, but I’m stuck on the 2nd and 3rd point as I don’t have any REGEX that matches those conditions.
EDIT I’ve managed to get the third REGEX which is
JavaScript
$thirdCondition = '/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[*]?)$/';
I’m stuck on the 2nd condition now
Advertisement
Answer
Have 3 regexex
JavaScript
$first_condition = '/^d{1,3}.d{1,3}.d{1,3}.d{1,3}z/';
$second_condition = '/^d{1,3}.d{1,3}.d{1,3}.[*]z/';
$third_condition = '/^d{1,3}.d{1,3}.[*].[*]z/';