Code: Select all
; Validates URLS
; --------------
; Must include a scheme such as http:// or ftp://
; Support for port numbers and numeric IPs
;
; Returns bool (#True or #False)
; -----------------------------------------------
Procedure.b ValidURL(url.s)
regex.i
pattern.s = "^([a-z0-9]+://)(([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_!~*'().;?:@&=+$,%#-]+)+/?)$"
If CreateRegularExpression(regex, pattern)
If MatchRegularExpression(regex, url)
FreeRegularExpression(regex)
ProcedureReturn #True
EndIf
EndIf
FreeRegularExpression(regex)
ProcedureReturn #False
EndProcedure