按第三个实例拆分字符串
Splitting string by third instance?
>我有这个:
var url = "http://www.example.com/level1/level2"
我想按字符/
将 URL 分为 3 个级别。我试过了:
var array = url.split('/');
但输出是这样的:
['http:','','www.example.com','level1','level2']
我想要这个:
['http://www.example.com','level1','level2']
我试过url.split('/')[2]
但这不起作用。
为什么不正确解析它
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'];
@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);
在方法unshift()
之前添加parts.shift();
,这样输出为真:
['http://www.example.com','level1','level2']
如果我被允许纠正你,请原谅我:)
如果我错了,请告诉我:)再次感谢!
相关文章:
- KnockoutJS-组件-多个实例
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 如何使用PHP和JS级联三个下拉列表
- 灯光问题(使用三个.js)
- 在三个.js中创建球体(例如地球)的磁力线
- 如何获取单选按钮的多个实例的选定单选按钮值
- 当同一浏览器的两个实例浏览时,Javascript页面如何具有唯一的ID
- 什么'这是从第三个函数上的async 1st函数获得结果的更好方法
- javascript第三个XMLHttpRequest被拒绝.但前两个是允许的
- 将循环中的两个文本框相乘,并在第三个文本框上显示结果
- 根据前两个下拉ID显示第三个下拉列表
- 在数组JS中查找三个重复项
- Meteor和S3:如何通过一次上传/编辑定义三个不同的图像
- 如何通过osascript处理同一应用程序的两个实例
- 如何替换javascript字符串中的前三个连字符
- 设置三个express实例:admin、site和app
- 按第三个实例拆分字符串
- innerHTML的三个实例正在工作,第四个没有
- 如何在同一页面上添加三个谷歌地图实例
- 将一个数组的三个实例推送到另一个数组——javaScript