在Javascript中确定路径是相对路径还是绝对路径

时间:2013-07-23 19:12:19

标签: javascript

是否有一个好的方法可以检查字符串是否是相对路径

示例:

  

path =“/ absolute / path / to”;

     

path =“relative / path / to”

     

path =“http://www.absolutePathAsWellWithoutTrailingSlash.com

     

path =“file:///www.absolutePathAsWellWithoutTrailingSlash.com”

您可以看到只检查起始斜杠是不行的,以确定它是绝对的还是相对的。

有没有一个很好的方法,或者我应该自己写?

3 个答案:

答案 0 :(得分:11)

或者你可以使用正则表达式:

function isPathAbsolute(path) {
  return /^(?:\/|[a-z]+:\/\/)/.test(path);
}

答案 1 :(得分:2)

这样的事可能有用(我没有测试过):

function isAbsolute(path){
    var a = document.createElement('a');
    a.href = path;
    return a.host !== location.host || a.protocol !== location.protocol;
}

请注意,如果绝对网址指向与当前网页相同的域和协议,则返回false。

答案 2 :(得分:0)

这就是我提出的:

new RegExp("^(?:/|.+://)").test(path)

支持问题中提及的所有内容:

path =“//same/as/the/protocol.com/abc