检查某些内容是否为链接

时间:2014-06-10 09:30:54

标签: javascript jquery

我正在开发一个项目,根据我发送到服务器文件的变量,可能会有不同的响应。其中一个是一个链接,我想用jquery检查,如果响应是一个链接,所以我可以重定向它..

我google了一下,只能找到如何用jquery重定向,这不是我需要的。

这是我目前的代码,我需要为response.message == URL

找到一些东西
    if(response.message == URL){
        window.location.href = response.url;
    }else{
       $('#errormsg').html('<div class="alert alert-success">'+
       '<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>'
                            +response.message+'</div>');
    }

有没有人知道检查字符串是否为url的方法? 我非常感谢你的帮助:)。

1 个答案:

答案 0 :(得分:1)

看起来你需要一个正则表达式来匹配一个URL。查看here,您可以找到合适的正则表达式,您可以按如下方式使用:

regex = new RegExp("#^((?#
    the scheme:
  )(?:https?://)(?#
    second level domains and beyond:
  )(?:[\S]+\.)+((?#
    top level domains:
  )MUSEUM|TRAVEL|AERO|ARPA|ASIA|EDU|GOV|MIL|MOBI|(?#
  )COOP|INFO|NAME|BIZ|CAT|COM|INT|JOBS|NET|ORG|PRO|TEL|(?#
  )A[CDEFGILMNOQRSTUWXZ]|B[ABDEFGHIJLMNORSTVWYZ]|(?#
  )C[ACDFGHIKLMNORUVXYZ]|D[EJKMOZ]|(?#
  )E[CEGHRSTU]|F[IJKMOR]|G[ABDEFGHILMNPQRSTUWY]|(?#
  )H[KMNRTU]|I[DELMNOQRST]|J[EMOP]|(?#
  )K[EGHIMNPRWYZ]|L[ABCIKRSTUVY]|M[ACDEFGHKLMNOPQRSTUVWXYZ]|(?#
  )N[ACEFGILOPRUZ]|OM|P[AEFGHKLMNRSTWY]|QA|R[EOSUW]|(?#
  )S[ABCDEGHIJKLMNORTUVYZ]|T[CDFGHJKLMNOPRTVWZ]|(?#
  )U[AGKMSYZ]|V[ACEGINU]|W[FS]|Y[ETU]|Z[AMW])(?#
    the path, can be there or not:
  )(/[a-z0-9\._/~%\-\+&\#\?!=\(\)@]*)?)$#i")

if (response.message.match(regex)) {
  ...
} else {
  ...
}