regex url validator?
Stephen MacLean
smaclean at madmansoft.com
Tue Oct 23 11:51:11 EDT 2018
Hi Bob,
This function does more than what Tom was asking for, but included it so he could see the entire function. No, rsIsValidEmail_LC isn’t built into LiveCode, it’s part of the rsIsValid suite.
Best,
Steve
> On Oct 23, 2018, at 10:54 AM, Bob Sneidar via use-livecode <use-livecode at lists.runrev.com> wrote:
>
> This looks like it is dependent on other functions. Are these built into Livecode??
>
> Bob S
>
>
>> On Oct 23, 2018, at 06:26 , Stephen MacLean via use-livecode <use-livecode at lists.runrev.com> wrote:
>>
>> Hi Tom,
>>
>> Don’t know if you found a solution yet, but this is from the rsIsValid suite I put together a few years back.
>>
>> http://forums.livecode.com/viewtopic.php?f=16&t=26653&p=138698#p138698 <http://forums.livecode.com/viewtopic.php?f=16&t=26653&p=138698#p138698>.
>> https://github.com/renegadesteve/rsIsValid <https://github.com/renegadesteve/rsIsValid>
>>
>>
>> Below is the LCS version:
>> function rsIsValidURL pURL
>>
>> put pURL into tCC
>>
>> // get scheme
>>
>> put "^(?<scheme>[a-z][a-z0-9+\-.]*):" into tSchemeRegex
>>
>> get matchText(tCC, tSchemeRegex,tScheme)
>>
>> // check scheme for http, https, ftp, ftps, mailto, nntp, news, or file
>>
>> if it <> true then return false
>>
>> if tScheme = "mailto" then
>>
>> //get the email address from the URL and then validate it
>>
>> delete char 1 to 7 of tCC
>>
>> return rsIsValidEmail_LC(tCC)
>>
>> else
>>
>> // setup the regex pattern
>>
>> put "^(?:http://|https://|ftp://|ftps://|nntp://|news://)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\x{00a1}-\x{ffff}0-9]-*)*[a-z\x{00a1}-\x{ffff}0-9]+)(?:\.(?:[a-z\x{00a1}-\x{ffff}0-9]-*)*[a-z\x{00a1}-\x{ffff}0-9]+)*(?:\.(?:[a-z\x{00a1}-\x{ffff}]{2,}))\.?)(?::\d{2,5})?(?:[/?#]\S*)?$" into tURLRegex
>>
>> // run filter against regex pattern and set result to true if it matches.
>>
>> filter tCC with regex pattern tURLRegex into tMatch
>>
>> if tMatch <> empty then
>>
>> return true
>>
>> else
>>
>> return false
>>
>> end if
>>
>> end if
>>
>> end rsIsValidURL
>>
>>
>> Best,
>>
>> Steve MacLean
>>
>>> On Oct 22, 2018, at 10:07 PM, Tom Glod via use-livecode <use-livecode at lists.runrev.com> wrote:
>>>
>>> Hi peeps,
>>>
>>> I'm trying to use regex to validate a list of URLs
>>>
>>> I've tried 4 or 5 different "regular" expressions that supposedly work
>>> ..... but LC does not give me anything back. None of them work,
>>>
>>> Like for example ... this one.
>>>
>>> ^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$
>>>
>>> or this one
>>>
>>> /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/
>>>
>>> or this one just to make sure
>>>
>>> (https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)
>>>
>>> Does anyone know how to get these or others to work in LC?
>>>
>>> Thanks,
>>>
>>> Tom
>>> _______________________________________________
>>> use-livecode mailing list
>>> use-livecode at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
More information about the use-livecode
mailing list