"WWW."соответствие:
www\..* // no line start/end criteria
^www\..*$ // line start/end enforced
Вот более полное выражение, которое обрабатывает префикс:
^(https?|ftp):\/\/www\..*$
Это будет соответствовать:
http://www.test.com
https://www.test.com
ftp://www.test.com/test
Еще лучше, это делает префиксобязательно, но "www."необязательно:
^(https?|ftp)\:\/\/(www\.)?.*$
Это будет соответствовать:
http://www.test.com
https://www.test.com
ftp://www.test.com/test
http://test.com
https://test.com
ftp://foo.org
Соответствует только изображениям
^(https?|ftp)\:\/\/(www\.)?.*\/[\w\-\+\%]*\.(gif|jpg|jpeg|png)$
Это будет соответствовать:
ftp://foo.org/test.png
https://test.com/image.jpg
http://www.bar.com/my-image.png
http://foo.org/my%20image.jpeg
http://foo.org/my%20image%20test_foo.jpeg
Этов начале потребуется префикс, косая черта, имя файла (которое допускает буквенно-цифровые символы, подчеркивания, тире и значения в кодировке URL, содержащие% или +) и допустимое расширение изображения.
Это не будет надежно!Помните, что изображения могут подаваться из любого обработчика HTTP.URL может не иметь ничего общего с изображением.
Дополнительная информация
Я согласен с предложением @Russ Cam посмотреть на валидатор jQueryисходный код , чтобы увидеть, сколько на самом деле возможностей.
Возможно, что введенный пользователем URL-адрес находится в действительной форме, но не существует;это можно проверить на стороне сервера простым запросом.
Я рекомендую RegexBuddy , если вам часто нужно создавать регулярные выражения.
Я также рекомендую RegExr для быстрого онлайн-тестирования.