Regex to check if valid URL that ends in .jpg, .png, or .gif
perl, regex
Solution
(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*\.(?:jpg|gif|png))(?:\?([^#]*))?(?:#(.*))?
That's a (slightly modified) version of the official URI parsing regexp from RFC 2396. It allows for `#fragments` and `?querystrings` to appear after the filename, which may or may not be what you want. It also matches any valid domain, including `localhost`, which again might not be what you want, but it could be modified.
A more traditional regexp for this might look like the below.
^https?://(?:[a-z0-9\-]+\.)+[a-z]{2,6}(?:/[^/#?]+)+\.(?:jpg|gif|png)$
|-------- domain -----------|--- path ---|-- extension ---|
EDIT See my other comment, which although isn't answering the question as completely as this one, I feel it's probably a more useful in this case. However, I'm leaving this here for karma-whoring completeness reasons.
Problem
I would like users to submit a URL that is valid but also is an image, ending with .jpg, .png, or .gif.