JS URL解析

  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解析

时间: 2024-11-05 21:40:27

JS URL解析的相关文章

JS的解析与执行过程(javascript面向对象一)

JS的解析与执行过程 全局中的解析和执行过程 预处理:创建一个词法环境(LexicalEnvironment,在后面简写为LE),扫描JS中的用声明的方式声明的函数,用var定义的变量并将它们加到预处理阶段的词法环境中去. 一.全局环境中如何理解预处理 比如说下面的这段代码: var a = 1;//用var定义的变量,以赋值 var b;//用var定义的变量,未赋值 c = 3;//未定义,直接赋值 function d(){//用声明的方式声明的函数 console.log('hello'

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

js的解析与执行过程  分全局  {预处理阶段和执行阶段}  函数{预处理函数和执行阶段} 1/创建词法环境(环境上下文) LexicalEnvironment   === window { } 用声明的方式创建的函数还会被加到词法环境中: 1.用var 定义的变量 比如定义了var a=5 function  xxx(){} 2.var g = function () {}//函数表达式 在词法环境中就会有:a:undefined   xxx : 对函数的一个引用 f(); g(); func

js url传值中文乱码之解决之道

因为js url在传值的过程中使用的是js自己默认的字符集编码规则,我们必须把它转成属于我们自己的编码规格 在websphere 中使用的是url=encodeURI(encodeURI(url)); //用了2次encodeURI 测试成功,第一次转换没有尝试, 处理方法一. js 程序代码:url=encodeURI(url);注意是整个URL 服务器端的代码:String linename = new String(request.getParameter("name").get

用正则把url解析为对象

用正则把url解析为对象 <!DOCTYPE html><html><head><meta charset="utf-8"><title>string and reg</title></head><body><script>/*一.知识点1. \ 将下一个字符标记为或特殊字符.或原义字符.或向后引用.或八进制转义符.例如, 'n' 匹配字符 'n'.'\n' 匹配换行符.序列 '

观V8源码中的array.js,解析 Array.prototype.slice为什么能将类数组对象转为真正的数组?

在官方的解释中,如[mdn] The slice() method returns a shallow copy of a portion of an array into a new array object. 简单的说就是根据参数,返回数组的一部分的copy.所以了解其内部实现才能确定它是如何工作的.所以查看V8源码中的Array.js     可以看到如下的代码: 一.方法  ArraySlice,源码地址,直接添加到Array.prototype上的"入口",内部经过参数.类型

JS的解析机制

JS的解析机制,是JS的又一大重点知识点,在面试题中更经常出现,今天就来唠唠他们的原理.首先呢,我们在我们伟大的浏览器中,有个叫做JS解析器的东西,它专门用来读取JS,执行JS.一般情况是存在作用域就存在解析,那它是怎么运行的呢.首先呢,然后分成两大步骤. 1 第一步叫做JS预解析,这一步骤实际上是一种准备工作把,在执行之前,它会先浏览整个代码,然后寻找三种东西. 1var  2 函数声明    我来分别解释一下.首先它会提取带var声明的变量,然后放到作用域中,但是不会提取变量的值,会先给他赋

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

来源:http://www.cnblogs.com/huzi007/p/4174519.html 关于URL编码/javascript/js url 编码/url的三个js编码函数escape(),encodeURI(),encodeURIComponent() 本文为您讲述关于js(javascript)编码url的相关问题.(js中url编码&符号后传值给其它页面,多参数网址作为整体编码后传值.如:http://www.ilcng.com/index.html?id=http://ilcng

《在WebView中如何让JS与Java安全地互相调用》核心JS全解析

1.说明: <[在WebView中如何让JS与Java安全地互相调用](http://www.pedant.cn/2014/07/04/webview-js-java-interface-research/)>核心JS全解析 2. 核心JS解析如下,欢迎拍砖!!! javascript: (function(win) {     console.log("HostApp initialization begin");     //win.HostApp对象     var 

JS URL编码

JS URL编码escape() 方法: 采用ISO Latin字符集对指定的字符串进行编码.所有的空格符.标点符号.特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字).比如,空格符对应的编码是%20. 不会被此方法编码的字符: @ * / + encodeURI() 方法: 把URI字符串采用UTF-8编码格式转化成escape格式的字符串. 不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + ' en