JavascriptでURLの正規表現チェック

週末は凄い暴風雨がくるということですが、いつも通り大阪はまた影響などないのでしょうね。。。

てなわけで以前、phpでURLの正規表現id:amidaike:20130306を書いてみたんだけども、
イマイチだったのとjavascriptでも使いたかったのでこんな風にしてみますたノシ

function isUrl(str) {
  var pattern = new RegExp('^(https?:\\/\\/)?'+ // protocol
    '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'+ // domain name
    '((\\d{1,3}\\.){3}\\d{1,3}))'+ // OR ip (v4) address
    '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+ // port and path
    '(\\?[;&a-z\\d%_.~+=-]*)?'+ // query string
    '(\\#[-a-z\\d_]*)?$','i'); // fragment locator

  if(!pattern.test(str)) {
    return false;
  } else {
    return true;
  }
}

ちなにみこれはstackoverflowで見かけたコードなんだけどurlを失念してしまいました。