是否有一个好的方法可以检查字符串是否是相对路径
示例:
path =“/ absolute / path / to”;
path =“relative / path / to”
path =“http://www.absolutePathAsWellWithoutTrailingSlash.com”
path =“file:///www.absolutePathAsWellWithoutTrailingSlash.com”
您可以看到只检查起始斜杠是不行的,以确定它是绝对的还是相对的。
有没有一个很好的方法,或者我应该自己写?
答案 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