Regex как чемпион.
Вы можете написать его сами, вот краткий пример:
(https?://)?.+$
Маленький поисковик нашел меня чем-то более конкретным, с точки зрения более строгого подтверждения:
^(https?://)?(([0-9a-z_!'().&=$%-]: )?[0-9a-z_!'().&=$%-]@)?(([0-9]{1,3}.){3}[0-9]{1,3}|([0-9a-z_!'()-].)([0-9a-z][0-9a-z-]{0,61})?[0-9a-z].[a-z]{2,6})(:[0-9]{1,4})?((/?)|(/[0-9a-z_!*'().;?:@&=$,%#-])/?)$
Источник: http://www.geekzilla.co.uk/view2D3B0109-C1B2-4B4E-BFFD-E8088CBC85FD.htm (Очевидно, протестируйте скопированное и вставленное регулярное выражение, как и с любым скопированным кодом)
Если вы не знаете, как использовать регулярные выражения в PHP, это так же просто, как:
$valid = preg_match($pattern, $urlOrStringToValidate);
где $ pattern = "/(https?://)?.+/" или что-то в этом роде между / и /
Javascript имеет метод объекта, называемый match для типа String.
var urlString = "http://www.XYZ.com";
var isValidURL = urlString.match(/(https?://)?.+/);