I just thought it changed a 12 digit long integer into the IP address format.
is the correct test, it rejects both too many and too few (fewer than four fields arguably are alternate encodings, but should be rejected unless you actually want the flexibility).
All of the options in your test cases can in fact be parsed to represent and IP.
What it comes down to is that your test cases are valid.
The format of an IP address is a 32-bit numeric address written as four decimal numbers (called octets) separated by periods; each number can be written as 0 to 255 (e.g., 0.0.0.0 to 255.255.255.255).
Really useful if it does (even if it makes me a little stupid).
Some of the scripts have asp source code, and some include visual basic (vb) versions. If three digits appear, it must start either 0 or 1 # e.g ([0-9], [0-9][0-9],[0-1][0-9][0-9]) | # ..2[0-4]\d # start with 2, follow by 0-4 and end with any digit (2[0-4][0-9]) | # ..25[0-5] # start with 2, follow by 5 and ends with 0-5 (25[0-5]) ) # end of group #2 \. “22.2222.22.2” – digit must between [0-255] IPAddress is valid : 126.96.36.199 , true IPAddress is valid : 255.255.255.255 , true IPAddress is valid : 192.168.1.1 , true IPAddress is valid : 10.10.1.1 , true IPAddress is valid : 188.8.131.52 , true IPAddress is valid : 184.108.40.206 , true IPAddress is valid : 127.0.0.1 , true IPAddress is valid : , false IPAddress is valid : 10.10 , false IPAddress is valid : 10 , false IPAddress is valid : a.a.a.a , false IPAddress is valid : 10.0.0.a , false IPAddress is valid : .256 , false IPAddress is valid : 220.127.116.119 , false IPAddress is valid : 9.20 , false IPAddress is valid : 22.22 , false IPAddress is valid : 22.2222.22.2 , false PASSED: Valid IPAddress Test([ String;@116471f) =============================================== com.mkyong.regex. Breaking the return statement down, I am saying, It does exactly what I assumed it did, however I was unaware that you could have the return at the bottom structured like that. For readability both in actual code and for this example, I ALWAYS chunk my regex pattern into a string array and then join it.I would have expected to have needed if(a && b) return true. The number of parts (each part is separated by a period) in ip String determines how the IP address is constructed.A one part address is stored directly in the network address.DO NOT USE this method to validate IP addresses." msdn.microsoft.com/en-us/library/… "5") the Try Parse function will convert it to "0.0.0.5" and, therefore, a valid... Its up to you to decide (design decision) whether you want to throw exceptions or return false.When it comes to parsing I generally prefer to return false rather than exceptions (the assumption being this is input that's not guaranteed to be correct).is technically a valid IPv4 address, even if it makes no sense for the user to enter that. Why are they converted in the way they are and should I treat them as valid even if it might not be transparent for the user, who maybe just forgot to enter the periods ( rationalize this behavior by pointing out that entering fewer parts is convenient for entering class A and B addresses.If you want to force a four-part address, you might just want to check that there are three periods in the address before feeding it to (i.e.; converted) to a valid IP address.