Regular expression for validating a url
This a very minimal list of tests to add to your testings: PASS " " " FAIL " " " " " Need testing :) Need to mention I took the idea of validating the possible IP address ranges in the URL while looking at other developers regular expressions I have seen in your tests, especially the one from @scottgonzales.
This a very minimal list of tests to add to your testings: PASS " " " FAIL " " " " " Need testing :) I have added simple network ranges validation, the rules I used are: - valid range 22.214.171.124 - 126.96.36.199, network adresses above and including 188.8.131.52 are reserved addresses - first and last IP address of each class is excluded since they are used as network broadcast addresses since I don't think this is worth implementing completely in a regular expression, a following pass should exclude the Intranet address space: 10.0.0.0 - 10.255.255.255 172.16.0.0 - 1.255 192.168.0.0 - 192.168.255.255 the loopback and the automatic configuration address space: 127.0.0.0 - 127.255.255.255 169.254.0.0 - 169.254.255.255 while the local, multicast and and the reserved address spaces: 0.0.0.0 - 0.255.255.255 (SPECIAL-IPV4-LOCAL-ID-IANA-RESERVED) 184.108.40.206 - 239.255.255 (MCAST-NET) 240.0.0.0 - 255.255.255.255 (SPECIAL-IPV4-FUTURE-USE-IANA-RESERVED) should already be excluded by the above regular expression.
It is easy to just remove the unwanted parts of the validation to fit different scopes (length, precision) so I will probably add more options like the list of existing TLD (possibly grouped), the list of existing protocols and/or a fall back for a more generic protocol match too. my Java Script URI parsing library does strict URI validation as per RFC 3986.
The second validation block also takes care of excluding IP address terminating with 0 or 255 (non usable network and broadcast addresses of each class C network).
Note that there's just no way to check if the last portion of a path is a file or a directory just by the name alone.
You could try to match for an extension, but there's no requirement for a file to have an extension.
This regular expression will match all HTML tags and their attributes.
This will LEAVE the content of the tags within the string.
It is easy to just remove the unwanted parts of the validation to fit different scopes (length, precision) so I will probably add more options like the list of existing TLD (possibly grouped), the list of existing protocols and/or a fall back for a more generic protocol match too. If you need more examples or solutions, please contact me. Note that in character sets, special characters (., *, ) do not have any special meaning. This means match anything that is a single white space character OR anything that is not a white space character!DOTALL is a flag in most recent regex libraries that makes the . There is no 100% reliable solution since the RFC is way too complex. ] )*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_] )*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]\.[0-9]\.[0-9]\.[0-9]))(:[0-9])? $ This will make sure that every number in the IP address is between 0 and 255, unlike the version using \d which would allow for 999.999.999.999.The following expression is pretty lenient on the format and should accept 999-999-9999, 9999999999, (999) 999-9999.