scvinodkumar Posted January 4, 2011 Share Posted January 4, 2011 Hi i have validate the URL in php. I am using the below regular expression to valdiate it...for some url its working but for few url its not working...could u plz help me this is the code i am using currently function isValidURL($url) { return preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url); } For example, if enter the invalid url, still it accepting, http://test Link to comment https://forums.phpfreaks.com/topic/223350-validate-url/ Share on other sites More sharing options...
.josh Posted January 4, 2011 Share Posted January 4, 2011 That's because you make the rest of the parts optional. (.[a-z0-9-]+)* You require a single char and then one or more chars from the char class...but then group it (wrap it in parenthesis) and put a 0 or more quantifier on it, effectively making it optional. (:[0-9]+)? You require a : and then 1 or more numbers..but then group it and put a 0 or 1 quantifier on it, effectively making it optional. (/.*)? You require a / and then 0 or more of anything...but then group it and put a 0 or 1 quantifier on it, effectively making it optional. Just google "url regex" or similar, you will see literally a ton of results for some good url validation regexes you can use...it's a very common topic. Link to comment https://forums.phpfreaks.com/topic/223350-validate-url/#findComment-1154639 Share on other sites More sharing options...
johnny86 Posted January 4, 2011 Share Posted January 4, 2011 And there is a built in PHP function for that too: filter_var($url, FILTER_VALIDATE_URL); // True if valid, else false Link to comment https://forums.phpfreaks.com/topic/223350-validate-url/#findComment-1154836 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.