Flagrant Badassery

A JavaScript and regular expression centric blog

parseUri: Split URLs in ColdFusion

Update: I've added a JavaScript implementation of the following UDF. See parseUri: Split URLs in JavaScript.

Here's a UDF I wrote recently which allows me to show off my regex skillz. parseUri() splits any well-formed URI into its components (all are optional).

The core code is already very brief, but I could replace everything within the <cfloop> with one line of code if I didn't have to account for bugs in the reFind() function (tested in CF7). Note that all components are split with a single regex, using backreferences. My favorite part of this UDF is its robust support for splitting the directory path and filename (it supports directories with periods, and without a trailing backslash), which I haven't seen matched in other URI parsers.

Since the function returns a struct, you can do, e.g., parseUri(uri).anchor, etc. Check it out:

See the demo and get the source code.

There Is 1 Response So Far. »

  1. very cool! thanks for sharing this.
    one scope issue: line 35 “Variables.uriParts.pos” should be “uriParts.pos”

Post a Response

If you are about to post code, please escape your HTML entities (&amp;, &gt;, &lt;).