1

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

例子:

路径=“/绝对/路径/到”;

路径=“相对/路径/到”

路径 = " http://www.absolutePathAsWellWithoutTrailingSlash.com "

path = "file:///www.absolutePathAsWellWithoutTrailingSlash.com"

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

有什么好的方法吗,还是我自己写?

4

3 回答 3

12

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

function isPathAbsolute(path) {
  return /^(?:\/|[a-z]+:\/\/)/.test(path);
}
于 2013-07-23T19:18:31.100 回答
2

像这样的东西可能会起作用(我没有测试过):

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

请注意,如果绝对 url 指向与当前页面相同的域和协议,这将返回 false。

于 2013-07-23T19:14:30.267 回答
0

这就是我想出的:

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

支持问题中提到的所有内容,并且:

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

于 2013-07-23T19:19:22.020 回答