devote, на самом деле, более хорошим решением (на мой взгляд) будет не заматчивание этой ссылки. Потому что далеко не все люди ставят пробелы перед дефисом, как это не печально:
var a = 'http://yandex.ru-хорошая ссылка'.
match( /(?:^|[\s]+)((http(s)?:\/\/)|(www\.))([^.,]+)\.(?:[^\s,]+)/ig );
alert(a);