function urlParse(url) {
try {
var hostexp = /http\:\/\/([^\/]+)/;
var hoststr = url.match(hostexp)[0];
var hosttmp = hoststr.replace("http://", "").split(":");
var pathtmp = url.replace(hoststr, "").split("?");
var urlObj = {};
urlObj.host = hosttmp[0];
urlObj.port = hosttmp.length > 1 ? hosttmp[1] : 80;
urlObj.path = pathtmp.length > 0 ? pathtmp[0] : "";
urlObj.params = {};
urlObj.paramsStr = "";
if (pathtmp.length > 1) {
urlObj.paramsStr = pathtmp[1];
var params = pathtmp[1].split("&");
for (var i = 0; i < params.length; i++) {
var parr = params[i].split("=");
if (urlObj.params[parr[0]]) {
if (typeof urlObj.params[parr[0]] != "object") {
var v = urlObj.params[parr[0]];
urlObj.params[parr[0]] = [];
urlObj.params[parr[0]].push(v);
}
urlObj.params[parr[0]].push(parr[1]);
}
else
urlObj.params[parr[0]] = parr[1];
}
}
return urlObj;
} catch (exception) { return null; }
}

演示下载

JS URL解析的更多相关文章

  1. jsp页面获取参数的方法(url解析、el表达式赋值、session取值)【原创】

    最近使用myEclispse做网站,使用jsp+js+css做页面,网站中常用到从列表进入详情页面的跳转,下面对详情页面的值填充方式做一个简单总结: 1.url中使用request获取参数 jsp上方 ...

  2. 笔记-爬虫-js代码解析

    笔记-爬虫-js代码解析 1.      js代码解析 1.1.    前言 在爬取网站时经常会有js生成关键信息,而且js代码是混淆过的. 以瓜子二手车为例,直接请求https://www.guaz ...

  3. 为什么返回的数据前面有callback? ashx/json.ashx?的后面加 callback=? 起什么作用 js url?callback=xxx xxx的介绍 ajax 跨域请求时url参数添加callback=?会实现跨域问题

    为什么返回的数据前面有callback?   这是一个同学出现的问题,问到了我. 应该是这样的: 但问题是这样的: 我看了所请求的格式和后台要求的也是相同的.而且我也是这种做法,为什么他的就不行呢? ...

  4. JS的解析与执行过程

    JS的解析与执行过程 全局中的解析和执行过程 预处理:创建一个词法环境(LexicalEnvironment,在后面简写为LE),扫描JS中的用声明的方式声明的函数,用var定义的变量并将它们加到预处 ...

  5. 简单的URL解析

    简单的URL解析,直接举例说明了 function getUrl(){ //如果存在则取到来后面的参数,注意,?不需要取出,substring从1开始,否则取""; var qs ...

  6. 【转】关于URL编码/javascript/js url 编码/url的三个js编码函数

    来源:http://www.cnblogs.com/huzi007/p/4174519.html 关于URL编码/javascript/js url 编码/url的三个js编码函数escape(),e ...

  7. JS的解析机制

    JS的解析机制,是JS的又一大重点知识点,在面试题中更经常出现,今天就来唠唠他们的原理.首先呢,我们在我们伟大的浏览器中,有个叫做JS解析器的东西,它专门用来读取JS,执行JS.一般情况是存在作用域就 ...

  8. js的解析--预处理(三)

    js的解析与执行过程  分全局  {预处理阶段和执行阶段}  函数{预处理函数和执行阶段}   1/创建词法环境(环境上下文) LexicalEnvironment   === window { } ...

  9. JS URL编码

    JS URL编码escape() 方法: 采用ISO Latin字符集对指定的字符串进行编码.所有的空格符.标点符号.特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在 ...

随机推荐

  1. models说明

    class UserType(models.Model): caption = models.CharField(max_length=32) class User(models.Model): na ...

  2. Java框架之单元测试

    单元测试dao层 @Test   //1.要写 test public void TestUserDao(){ ApplicationContext ctx=new ClassPathXmlAppli ...

  3. leftjoin及多个leftjoin执行顺序

    给个通俗的解释吧.例表aaid adate1 a12 a23 a3表bbid bdate1 b12 b24 b4两个表a,b相连接,要取出id相同的字段select * from a inner jo ...

  4. LAMP之PHP

    保持apache.mysql正在运行 [root@cairui php-]# lsof -i tcp: COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NA ...

  5. C#中抽象类与接口

    1抽象类 (1) 抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法 (2) 抽象类不能被实例化 (3) 抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明 ...

  6. Java——事务

    一.事务(Transaction) 1. 在开发中我们的一个业务往往需要同时操作多个表,这些操作往往是不可分割,业务中的对数据库的多次操作,要么同时成功,要么全都失败. 2.注意:我们在同一个事务中使 ...

  7. [USACO10OCT]湖计数Lake Counting 联通块

    题目描述 Due to recent rains, water has pooled in various places in Farmer John's field, which is repres ...

  8. Python自动化开发学习20-Django的form组件

    武沛齐老师的Django的FORM组件:http://www.cnblogs.com/wupeiqi/articles/6144178.html 转自:http://blog.51cto.com/st ...

  9. 图片滚动插件jquery bxslider

    https://www.cnblogs.com/axl234/p/4167196.html

  10. window 系统 修改服务器远程登录端口

    window 系统 [ 默认3389远程端口 ] 快捷键:Ctrl+R  然后输入“regedit”,打开注册表 或者 单击左下角[开始]——[运行],然后在输入框输入 regedit,点击确定,打开 ...