我有这个:
var url = "http://www.example.com/level1/level2"
我想将字符/
分成3个级别的网址。我试过了:
var array = url.split('/');
但输出是这样的:
['http:','','www.example.com','level1','level2']
我想这样:
['http://www.example.com','level1','level2']
我尝试了url.split('/')[2]
,但这不起作用。
答案 0 :(得分:11)
为什么不正确解析
var url = "http://www.example.com/level1/level2"
var a = document.createElement('a');
a.href = url;
a.protocol; // http:
a.host; // www.example.com
a.pathname; // /level1/level2
var parts = a.pathname.split('/').filter(Boolean);
parts.unshift(a.protocol + '//' + a.host); // ['http://www.example.com','level1','level2'];
答案 1 :(得分:0)
@adeneo 非常感谢!你的答案非常简单和干净(我不知道解析URL的方法),但你的答案中有一个小错误......(真的很小:))
您的输出是:
['http://www.example.com','','level1','level2']
所以要输出我的输出(3级):
var url = "http://www.example.com/level1/level2"
var a = document.createElement('a');
a.href = url;
a.protocol; // http:
a.host; // www.example.com
a.pathname; // /level1/level2
var parts = a.pathname.split('/');
parts.shift(); // added this line ------------------
parts.unshift(a.protocol + '//' + a.host);
document.write(parts);
在方法parts.shift();
之前添加unshift()
,这样输出为true:
['http://www.example.com','level1','level2']
如果我被允许纠正你,请原谅我:)
如果我错了请告诉我:) 再次感谢!