(https?://(?:www.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9].[^s]{2,}|www.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9].[^s]{2,}|https?://(?:www.|(?!www))[a-zA-Z0-9]+.[^s]{2,}|www.[a-zA-Z0-9]+.[^s]{2,})
^http[s]?://(www.)?(.*)?/?(.)*
/^(https?://)?([da-z.-]+).([a-z.]{2,6})([/w .-]*)*/?$/
// All are 'non-capturing' regular expressions.
// General format of a URL in a RegEx:
(?:(?:https?|ftp)://)?(?:www.)?[^/
]+(?:/[^
]*)?
// To enforce the protocol
(?:https?|ftp)://(?:www.)?[^/
]+
// To enforce the protocol and trailing slash
(?:https?|ftp)://(?:www.)?[^/
]+(?:/[^
]*)
// To enforce file extensions like .html or .png:
(?:(?:https?|ftp)://)?(?:www.)?[^/
]+(?:/[^
]*)(?:[a-zA-Z0-9]+.(?:html|png|webp|js))
// To implement in GO (https://go.dev), add an extra backslash (' ') to every unescaped backslash (' ')
// For the first format, that is:
(?:(?:https?|ftp)://)?(?:www.)?[^/
]+(?:/[^
]*)?
// You do not need to add the extra backslash to the '
' and '
' because it is handled natively
// It will include the space before as well (if it has one)
/(^| )(https?://)?(www.)?[-a-zA-Z0-9@:%._+~#=]{1,256}.[a-zA-Z0-9()]{1,8}([-a-zA-Z0-9()@:%_+.~#?&//=]*)/gi
/^(?:(?:https?|ftp)://)(?:S+(?::S*)?@)?(?:(?!(?:10|127)(?:.d{1,3}){3})(?!(?:169.254|192.168)(?:.d{1,3}){2})(?!172.(?:1[6-9]|2d|3[0-1])(?:.d{1,3}){2})(?:[1-9]d?|1dd|2[01]d|22[0-3])(?:.(?:1?d{1,2}|2[0-4]d|25[0-5])){2}(?:.(?:[1-9]d?|1dd|2[0-4]d|25[0-4]))|(?:(?:[a-zu00a1-uffff0-9]-*)*[a-zu00a1-uffff0-9]+)(?:.(?:[a-zu00a1-uffff0-9]-*)*[a-zu00a1-uffff0-9]+)*(?:.(?:[a-zu00a1-uffff]{2,})).?)(?::d{2,5})?(?:[/?#]S*)?$/i
^(ht|f)tp(s?)://[0-9a-zA-Z]([-.w]*[0-9a-zA-Z])*(:(0-9)*)*(/?)([a-zA-Z0-9-.?,'/+&%$#_]*)?$
/^https?://(?:www.)?[-a-zA-Z0-9@:%._+~#=]{1,256}.[a-zA-Z0-9()]{1,6}(?:[-a-zA-Z0-9()@:%_+.~#?&/=]*)$/
/((?:(?:http?|ftp)[s]*://)?[a-z0-9-%/&=?.]+.[a-z]{2,4}/?([^s<>#%",{}|^[]`]+)?)/gi
$regex = "((https?|ftp)://)?";
$regex .= "([a-z0-9+!*(),;?&=$_.-]+(:[a-z0-9+!*(),;?&=$_.-]+)?@)?";
$regex .= "([a-z0-9-.]*).([a-z]{2,3})";
$regex .= "(:[0-9]{2,5})?";
$regex .= "(/([a-z0-9+$_-].?)+)*/?";
$regex .= "(?[a-z+&$_.-][a-z0-9;:@&%=+/$_.-]*)?";
$regex .= "(#[a-z_.-][a-z0-9+$_.-]*)?";
$url = 'https://mydomain.com/';
if (preg_match("/^$regex$/i", $url)) {
echo('Enter URL is a valid URL');
}