有没有一种好的方法可以检查字符串是否是相对路径
例子:
路径=“/绝对/路径/到”;
路径=“相对/路径/到”
路径 = " http://www.absolutePathAsWellWithoutTrailingSlash.com "
path = "file:///www.absolutePathAsWellWithoutTrailingSlash.com"
您可以看到仅检查起始斜线是行不通的,以确定它是绝对的还是相对的。
有什么好的方法吗,还是我自己写?
有没有一种好的方法可以检查字符串是否是相对路径
例子:
路径=“/绝对/路径/到”;
路径=“相对/路径/到”
路径 = " http://www.absolutePathAsWellWithoutTrailingSlash.com "
path = "file:///www.absolutePathAsWellWithoutTrailingSlash.com"
您可以看到仅检查起始斜线是行不通的,以确定它是绝对的还是相对的。
有什么好的方法吗,还是我自己写?
或者您可以使用正则表达式:
function isPathAbsolute(path) {
return /^(?:\/|[a-z]+:\/\/)/.test(path);
}
像这样的东西可能会起作用(我没有测试过):
function isAbsolute(path){
var a = document.createElement('a');
a.href = path;
return a.host !== location.host || a.protocol !== location.protocol;
}
请注意,如果绝对 url 指向与当前页面相同的域和协议,这将返回 false。
这就是我想出的:
new RegExp("^(?:/|.+://)").test(path)
支持问题中提到的所有内容,并且:
path = "//same/as/the/protocol.com/abc