[Fwd: [Html-widget] formfu - new features]

Jason Kohles email at jasonkohles.com
Wed Mar 14 14:21:45 GMT 2007


On Mar 14, 2007, at 4:09 AM, Mario Minati wrote:

>
> So this brings me back to my problem to find a constrain that  
> handles the http
> webadresses a user could type. For me that should include the  
> fragment and
> doesn't need necessarily the https? scheme.
>
> For now I would suggest to make a custom Constraint out of it which  
> doesn't
> need to be part of the main formfu distribution.
>
The easiest way to do that would be to build a custom Regexp::Common  
subclass using the pieces that Regexp::Common::URI already provides...


package Regexp::Common::WebAddress;
use strict;
local $^W = 1;

use Regexp::Common               qw( pattern clean no_defaults );
use Regexp::Common::URI::RFC2396 qw(
     $host $port $path_segments $query $fragment
);

pattern name    => [ qw( WebAddress ) ],
         create  => "(?k:(?k:https?)://(?k:$host)(?::(?k:$port))?".
                    "(?k:/(?k:(?k:$path_segments)(?:[?](?k: 
$query))?))?".
                    "(?k:#$fragment)?)";



#!/usr/bin/perl -w
use Regexp::Common qw( WebAddress );

print "$_: ".( /^$RE{WebAddress}$/ ? "VALID" : "NOT VALID" )."\n" for (
     'http://www.google.com/',
     'foo://blah.arghh!/',
     'foo://foo.bar/',
     'https://minati.de./',
     'http://minati.de./',
     'https://minati.de/index.html#lkj',
     'http://minati.de/index.html#lkj',
);

-- 
Jason Kohles
email at jasonkohles.com
http://www.jasonkohles.com/
"A witty saying proves nothing."  -- Voltaire





More information about the Html-widget mailing list