Get param from url js - tips javascript

Nội dung bài viết

Get parameter from url JS, thật nó đơn giản nhưng mỗi lần sử dụng lại google nên làm một bài tìm cho nhanh, hy vọng không những mình mà sẽ giúp những lập trình viên đạt được hiệu quả nhanh chóng. 

Get param from url js

Get parameter from url JS 

Bài viết này nằm trong series - Mẹo viết javascript, ở đó có nhiều võ công, xin chú ý. Câu hỏi: "Làm cách nào để lấy tham số từ URL trong JavaScript?" 

Trước hết thì nói về GET một chút. Nhược điểm của việc sử dụng phương pháp GET là nó hiển thị cho khách truy cập biết những tham số hiển thị và nó còn ảnh hưởng đến liên kết của trang hay có nghĩa là chẳng thân thiện chút nào. Nếu bạn không thích phương pháp này, bạn có thể sử dụng phương thức POST, hay Session, Cookie để lưu trữ các biến. Ngoài ra tôi cũng có viết một bài giúp các bạn biến một "Object into query string parameters" nếu bạn cần hãy xem qua.


Còn bây giờ code nhanh cách sau có thể Get data from url JavaScript nhanh chóng. Trong ví dụ dưới đây: Tôi gải sử chúng ta có url như sau: https://test/com?x=a&y=b Nhiệm vụ chúng ta làm thế nào để get value từ các params x và y.

const url = 'https://test/com?x=a&y=b';
function getUrlVars(url) {
    var vars = {};
    var parts = url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
        vars[key] = value;
    });
    return vars;
}
console.log(getUrlVars(url)['x']) // a
console.log(getUrlVars(url)['y']) // b

Sau khi sử dụng rất là ok nhưng mới đây xả ra một trường hợp đó là nếu tìm kiếm một parameter mà không có thì sẽ trả về undefined. Nhưng không sao, chúng ta có thể 1 trong 3 toán tử đặc biệt trong es6 đó là:

console.log(getUrlVars(url)['z'] || 'anonystick') // anonystick

Tóm lại

Bài viết này chả cao siêu gì, nhưng để lại khi chúng ta cần nhanh gọn, có nhiều cách ngắn hơn, không tiện đưa ra. Mỗi người có một bí kíp riêng. Nên nếu share cho anh em thì càng tốt. Và đây lưu ý là bài viết nằm trong series - Mẹo viết javascript. Nếu cần hãy đón nhận những tips js đó. Giúp bạn biến hoá khôn lường. Thanks!

Có thể bạn đã bị missing