EN
JavaScript - get URL request parameters using custom logic
9 points
In this article, we would like to show you how to get URL request parameters in JavaScript using custom logic.
Note: to understand how the below example works, copy the code into your project.
Example index.html
file:
xxxxxxxxxx
1
2
<html>
3
<head>
4
<script src="request-parameters.js"></script>
5
</head>
6
<body>
7
<script>
8
9
console.log('------- by getParameters() -------');
10
11
var parameters = RequestParameters.getParameters();
12
13
for (var i = 0; i < parameters.length; ++i) {
14
var parameter = parameters[i];
15
console.log(parameter.name + ': ' + parameter.value);
16
}
17
18
console.log('------- by getParameter() --------');
19
20
var pageNumber = RequestParameters.getParameter('page-number', '1');
21
var pageSize = RequestParameters.getParameter('page-size', '20');
22
var dataOrder = RequestParameters.getParameter('data-order', 'A-Z');
23
24
console.log('page-number: ' + pageNumber);
25
console.log('page-size: ' + pageSize);
26
console.log('data-order: ' + dataOrder);
27
28
</script>
29
</body>
30
</html>
Example result:

Example request-parameters.js
file:
xxxxxxxxxx
1
// 'use strict';
2
3
(function (window) {
4
var PARAMETER_REGEX = /^([^=]+)(?:=(.*))?$/g;
5
6
function matchParameter(text) {
7
PARAMETER_REGEX.lastIndex = 0;
8
return PARAMETER_REGEX.exec(text);
9
}
10
11
function decodeComponent(part) {
12
if (part) {
13
return decodeURIComponent(part);
14
}
15
return null;
16
}
17
18
function parseParameters(search) {
19
var parameters = { };
20
var postfix = search.substring(1);
21
if (postfix) {
22
var parts = postfix.split('&');
23
for (var i = 0; i < parts.length; ++i) {
24
var part = parts[i];
25
if (part) {
26
var match = matchParameter(part);
27
if (match) {
28
var name = decodeComponent(match[1]);
29
parameters[name] = decodeComponent(match[2]);
30
}
31
}
32
}
33
}
34
return parameters;
35
}
36
37
window.RequestParameters = new function() {
38
var search = location.search;
39
var parameters = parseParameters(search);
40
this.getParameter = function(name, defaultValue) {
41
return parameters[name] || defaultValue;
42
};
43
this.getParameters = function() {
44
var result = [ ];
45
for (var key in parameters) {
46
result.push({name: key, value: parameters[key]});
47
}
48
return result;
49
};
50
};
51
})(window);