Re: Regular expression: How do I allow forward slashes?

frogstarr78
Sun, 20 Dec 2009 05:09:17 -0000

It actually depends on where the "." is in the Regexp. In your case it
is inside a Character Class "[]". So it is matching the "."
character
explicitly. Since \w is shorthand for the [a-zA-Z] character class. It
is parsed as a character class instead of an escaped "w" character. So
you could actually change the character class to be %r|[-\w_./]|. No
need to further escape the "_", or "-" since it is at the
beginning of
the class (That''s for another reason though).

On Dec 19, 10:12 am, AlwaysCharging
<goodg...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:
> Yes, that did it.  Thank you.
> No idea how I try everything and overlook the simplest solution, duh.
>
> And, Thank you to everyone else that weighed in as well, definitely
> some other options to look into.
>
> Side note:  Anybody know why the period doesn''t have to be
escaped?
> Like just "." allows the dot to be input, as well as
"\."
> So, [-\w\_\.\/] works just as [-\w\_.\/].  Why is this?
>
> On Dec 19, 3:41 am, frogstarr78
<frogstar...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
>
>
> > Have you tried escaping them "\/"?
>
> > On Dec 18, 11:01 pm, AlwaysCharging
<goodg...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
> > > In my app, I allow users to submit urls.  They (of course) need
the
> > > ability to submit urls with a forward slash, "/", but
whats the
> > > regular expression to allow them to do that?
>
> > > I currently use:
>
> > > validates_format_of :url, :with => /^[-\w\_.]+$/i
>
> > > to only allow alphanumerics, dashes, underscores, and dots to
prevent
> > > cross site scripting when I later reconstruct these urls, but I
can''t
> > > figure out how to allow "/" as well.
>
> > > Any ideas?