You could make the protocol part optional:
/\s((ht|f)tp:\/\/)?([^ \,\;\:\!\)\(\"\'\\f\n\r\t\v])+/g
You could make the protocol part optional:
/\s((ht|f)tp:\/\/)?([^ \,\;\:\!\)\(\"\'\\f\n\r\t\v])+/g
I use this a as reference all the time. This guy has 8 regex's you should know.
http://net.tutsplus.com/tutorials/other/8-regular-expressions-you-should-know/
Here is what he uses to look for URL's
/^(https?:\/\/)?([\da-z.-]+).([a-z.]{2,6})([\/\w .-])\/?$/
He also breaks down what each part does. Very useful for learning regex's and not just getting an answer that works for reasons you don't understand.
This is a non-trivial task. To match any URI that is valid according to the relevant RFCs you need a monumentally complex regular expression, and even then that won't filter out URIs with invalid top-level domains (e.g. http://brussels.sprout/). So, you have to compromise. Determine what's important to you (examples: are false positives or false negatives more acceptable? Do you want to limit top-level domains to only those that currently exist? Do you allow non-Latin characters in matched URIs?) You should decide what you need you regular expression to do and design it accordingly rather than blindly copying and pasting an example from the web.