Maybe it would be worth generalizing it a bit, a sort of IS_URI(schema=['generic'|'http'|'ftp'|'mailto']) and have http as the default?
On Nov 11, 4:43 pm, mdipierro <[EMAIL PROTECTED]> wrote: > Hi Jonathan, > > please make them into a single one IS_URL(mode="strict" or "generic") > and email it to me. I will include it in the official distribution. I > do not use bitbucket. bz only. > > Massmo > > On Nov 11, 6:28 am, Jonathan Benn <[EMAIL PROTECTED]> wrote: > > > Hi everyone, > > > It took me a few days but I managed to implement and thoroughly test > > two new validator functions for web2py: > > > IS_GENERIC_URL: this precisely follows the URL specs (RFC 2396). It > > screens out strings with funny characters, and checks the inputed > > scheme against an authoritative list of all valid schemes. This > > generic function will work to validate ANY protocol that uses URLs. > > > IS_HTTP_URL: this precisely follows the HTTP protocol URL specs (RFC > > 2616). It only works for http and https, but it handles all the weird > > cases, like relative URLs, abbreviated URLs, ports, localhost, etc. > > etc. It checks to make sure the domain makes sense, and it checks the > > top-level domain against an authoritative list. If you input an > > abbreviated URL, it will prepend "http://" unless you specify > > otherwise when you construct the validator. > > > As you might guess, successful validations of IS_HTTP_URL are a subset > > of what IS_GENERIC_URL validates. > > > It is not possible to create a version of IS_URL that properly > > validates HTTP, FTP and FILE and other schemes, because each scheme is > > mutually exclusive as far as I can tell. They each have their own > > different syntaxes. Therefore, I suggest that for IS_URL we either: > > > (1) Make it into an "umbrella function" that runs a series of > > validators one after the other, returning the first that is accepted > > > OR > > > (2) We rename either IS_HTTP_URL or IS_GENERIC_URL to IS_URL, > > depending on which one best reflects the desired implementation for > > IS_URL > > > I'm going to try to figure out how to upload my changes to BitBucket > > tomorrow. For anyone that would like to see my results immediately, > > please just send me an email and I'll be happy to send you the files. > > > I hope the above helps at least a little, > > > --Jonathan --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---