Đoạn code snippet sau sử dụng JavaScript để đọc các parameter truyền vào query string trên URL.

Cách 1: Dùng Vanilla JavaScript
Ưu điểm của cách này là “portable”, tương thích hầu như với tất cả trình duyệt. Đoạn mã sau của tôi còn xử lý cả array lẫn object parameter.
var queryString = window.location.search
.substring(1) // strip the leading '?'
.split('#')[0], // remove the part after hash
params = queryString.split('&'),
searchParams = {}; // output
for (var i = 0; i < params.length; i++) {
var pair = params[i].split('='),
name = pair[0],
value = typeof (pair[1]) === 'undefined' ?
true : decodeURIComponent(pair[1]);
if (name.match(/\[.*\]$/)) { // array type parameter
var key = name.replace(/\[.*\]/, ''),
index = /\[(.*)\]/.exec(name)[1];
// convert index to integer if possible
if ( /^[0-9]+$/.test(index) )
index = parseInt(index);
// add a new key if it does not exist
if (!searchParams[key]) {
if ( isNaN(index) )
searchParams[key] = {};
else
searchParams[key] = {};
}
if ( index === '' )
searchParams[key].push(value);
else
searchParams[key][index] = value;
} else {
if (!searchParams[name])
searchParams[name] = value;
// duplicated key found? turn it into array
else if ('string' === typeof searchParams[name])
searchParams[name] = [searchParams[name], value];
else
searchParams[name].push(value);
}
}
// ?topic=test%20query%20string&version=1.0
console.log( searchParams["topic"] ); // "test query string"
console.log( searchParams["version"] ); // "1.0"
Hoặc nếu không muốn quá phức tạp như trên (không có array hay object) thì hãy dùng phiên bản rút gọn như sau cho nhanh.
var queryString = window.location.search.substring(1),
params = queryString.split('&'),
searchParams = {};
for (var i = 0; i < params.length; i++) {
var pair = params[i].split('=');
searchParams[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '');
}
Cách 2: Sử dụng URLSearchParams
URLSearchParams là built-in interface để xử lý query string trên URL, có nhiều tính năng đáng chú ý. Tuy nhiên đây là interface tương đối mới và không tương thích với Microsoft Internet Explorer và Microsoft Edge (…cho đến khi Edge dùng WebKit).
var queryString = window.location.search;
var searchParams = new URLSearchParams(queryString);
// ?topic=test%20query%20string&version=1.0
console.log( searchParams.get("topic") ); // "test query string"
console.log( searchParams.get("version") ); // "1.0"








