url 取參,json轉url參數格式

前端經過url傳參你們必定不陌生 搞個「讀,寫」 操做方法javascript

以前寫過一個版本,在使用過程當中出現了bug ,因而有了這個改進版:html

代碼:前端

//取url參數 getUrlK("name","對象默認爲location" )
function getUrlK(key, obj) {
    var oobj = obj || window.location.search;
    var arr1 = [];
    if(oobj){
	    if(/\?/.test(oobj)){
        	arr1 = oobj.toString().split('?');
	    }else{
        	arr1.push(oobj)
	    };
	    for(var i = 1; i < arr1.length; i++) {
	        if(/&/.test(arr1[i])) {
	            var arr2 = arr1[i].split('&');
	            for(var j = 0; j < arr2.length; j++) {
	                if(arr2[j]) {
	                    var arr3 = arr2[j].split('=');
	                    if(arr3[0] == key) {
	                        return decodeURI(arr3[1]);
	                    }
	                }
	            }
	        } else {
	            var arr2 = arr1[i].split('=');
	            if(arr2[0] == key) {
	                return decodeURI(arr2[1]);
	            };
	        };
	    };
    };
};

//json轉url參數 setUrlK({name:"a"},true編碼)
function setUrlK(ojson) {
    var s='',name, key;
    for(var p in ojson) {
        if(!ojson[p]) {return null;} 
        if(ojson.hasOwnProperty(p)) { name = p };
        key = ojson[p];
        s += "&" + name + "=" + encodeURIComponent(key);
    };
    return s.substring(1,s.length);
};

 

 

「http://192.168.217.1:8020/urljson.html?&name=宋&age=18」java

//應用 ==========
var data = setUrlK({  =>&name=宋&age=18
  name: "宋",
  age: '18'
}); json

getUrlK("name");  =>宋編碼

相關文章
相關標籤/搜索