Skip to content

Instantly share code, notes, and snippets.

@wangpin34
Last active April 7, 2017 09:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wangpin34/8fc74af8ed42eb04062326b869c2c578 to your computer and use it in GitHub Desktop.
Save wangpin34/8fc74af8ed42eb04062326b869c2c578 to your computer and use it in GitHub Desktop.
Url parameter serialized and parsed
/**
* @param jsonObj {Object} Sample: { name: 'wangpin', job: 'engineer' }
* @return params {String} Sample: name=wangpin&job=engineer
*/
function stringifyParams(jsonObj) {
if(typeof jsonObj !== 'object' || !(jsonObj instanceof Object)){
throw new Error('Not a valid json object');
}
var result = [];
for (var x in jsonObj) {
result.push(x + '=' + jsonObj[x]);
}
return result.join('&');
}
/**
* @param paramStr {String} Sample: name=wangpin&job=engineer
* @return param {Object} Sample: { name: 'wangpin', job: 'engineer' }
*/
function parseParams(paramStr) {
if(typeof paramStr !== 'string'){
throw new Error('Not a str');
}
var reg = /([^=]+)=([^=&]*)/ig;
var obj = {};
var result;
while ((result = reg.exec(paramStr))) {
obj[result[1]] = result[2];
}
return obj;
}
/**
* @param url {String} Sample: http://app.com/index?name=wangpin&job=engineer#page
* @return paramStr {String} Sample: name=wangpin&job=engineer
*/
function getParamsStr(url) {
if(typeof url !== 'string'){
throw new Error('Not a string');
}
var reg = /\?([^\?\#]+)#?/ig;
var result = reg.exec(url);
if (result && result[1]) {
return result[1];
}
return '';
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment