//var postData = "&id=0&Delimiter=+&bom=&&name=lee"; var postData = 'a=0&b=DataFromFile&c=&d=&pos=10&delimiter=+&path='; var tmp = ''; //This pattern is to get key & value, it has problem dealing with empty value //var pattern = /[?&]([a-z]+)=([a-z0-9]+|[&+?=;:]{1})/gi; var pattern = /[?&]?([a-z0-9]+)=/gi; var matches = postData.match(pattern); if(matches) { var key = ''; var value = ''; for(var i = 0; i < matches.length; i++) { key = matches[i]; if((i + 1) < matches.length) { value = postData.substring(postData.indexOf(matches[i]) + matches[i].length, postData.indexOf(matches[i+1])); } else { value = postData.substr(postData.indexOf(matches[i]) + matches[i].length); } tmp += key + encodeURIComponent(value); document.write(matches[i] + '<br>key:[' + key + ']; value:[' + value + ']<br><br>'); } document.write('<br>'); document.write(tmp); }