Demo
Legend
(for the
alternative output view)
- protocol (scheme)
- authority
- relative
- path
- query
- anchor (fragment)
Input:
Output:
Alternative Output View (hover over each URI part to identify it):
http://usr:pwd@www.test.com:81/dir/dir.2/index.htm?q1=value&q2=test#top
Source Code
Results List
I've written some code to loop over a list of URIs, apply the parseUri() function to each of them, and add a CSS class to each part returned. This is intended to show, at a glance, the accuracy of this function across a wide range of potential input. Hover over each URI part to identify it.
- http:
- https://
- http://host
- http://host/
- http://host.com
- http://subdomain.host.com
- http://host.com:81
- http://user@host.com
- http://user@host.com:81
- http://user:@host.com
- http://user:@host.com:81
- http://user:password@host.com
- http://user:password@host.com:81
- http://user:password@host.com:81?query
- http://user:password@host.com:81#anchor
- http://user:password@host.com:81/
- http://user:password@host.com:81/?query
- http://user:password@host.com:81/#anchor
- http://user:password@host.com:81/file.htm
- http://user:password@host.com:81/directory
- http://user:password@host.com:81/directory?query
- http://user:password@host.com:81/directory#anchor
- http://user:password@host.com:81/directory/
- http://user:password@host.com:81/directory/?query
- http://user:password@host.com:81/directory/#anchor
- http://user:password@host.com:81/directory/sub.directory/
- http://user:password@host.com:81/directory/sub.directory/file.htm
- http://user:password@host.com:81/dir.ect.ory/
- http://user:password@host.com:81/dir.ect.ory/file.htm
- http://user:password@host.com:81/directory/file.htm
- http://user:password@host.com:81/directory/file.htm?query
- http://user:password@host.com:81/directory/file.htm?query=1&test=2
- http://user:password@host.com:81/directory/file.htm?query=1#anchor
- /directory/sub.directory/file.htm?query=1&test=2#anchor
- /directory/
- /file.htm
- /?query
- /#anchor
- /
- ?query
- ?query=1&test=2#anchor
- #anchor
- 192.168.1.1
- host.com
- host.com:81
- host.com:81/
- host.com?query
- host.com#anchor
- host.com/
- host.com/file.htm
- host.com/directory/?query
- host.com/directory/#anchor
- host.com/directory/file.htm
- host.com:81/direc.tory/file.htm?query=1&test=2#anchor
- user@host.com
- user@host.com:81
- user:@host.com
- user:@host.com:81
- user@host.com/
- user@host.com/file.htm
- user@host.com?query
- user@host.com#anchor
- user:password@host.com:81/direc.tory/file.htm?query=1&test=2#anchor
- //host.com
- //host.com?query
- //host.com#anchor
- //host.com/
- //host.com/?query
- //host.com/#anchor
- //host.com/file.htm
- //host.com/directory/
- //host.com/directory/file.htm
- //host.com/directory/file.htm?query
- //host.com/directory/file.htm#anchor
- //user@host.com
- //user@host.com:81
- //user:@host.com
- //user:@host.com:81
- //user:password@host.com
- //user:password@host.com:81
- //user:password@host.com:81/
- //user:password@host.com:81/direc.tory/file.htm?query=1&test=2#anchor
- http:user:password@host.com:81
Changelog
Changelog for the ColdFusion implementation.
0.2 (2007-02-19)
- Added four new URI parts: user, password, userInfo (contains the user and password), and relative (contains the path, query, and anchor).
- Renamed three URI parts:
- "domain" renamed to "host" (more inclusive term, since it also supports IPs, etc.)
- "directoryPath" renamed to "directory".
- "fileName" renamed to "file".
- Added extensive demos.
0.1 (2007-02-01)
Feedback? Bugs? Please leave comments on the related blog post.