2009-08-21 33 views

Trả lời

73
var field = 'q'; 
var url = window.location.href; 
if(url.indexOf('?' + field + '=') != -1) 
    return true; 
else if(url.indexOf('&' + field + '=') != -1) 
    return true; 
return false 
+6

Nhiều con đường trở lại là một sự lựa chọn cá nhân, tôi sử dụng chúng bởi vì tôi nghĩ rằng họ dẫn đến mã sạch, vì họ giúp tôi tránh lồng nhau nếu phát biểu và hiển thị chính xác những gì đang xảy ra tại một điểm nhất định trong mã. Đối với các trường hợp stict, cả hai tay trái và tay phải sẽ luôn luôn là số, vì vậy những gì khác biệt sẽ chuyển sang các nhà khai thác bình đẳng nghiêm ngặt làm cho? – LorenVS

+4

Mã số dọn dẹp? ... Tại sao không chỉ trả về kiểm tra indexOf, thay vì đặt nó trong một câu lệnh IF sơ bộ hoàn toàn vô dụng. – James

+0

Bởi vì để trả lại bài kiểm tra indexOf, tôi sẽ phải đưa cả hai vào một dòng duy nhất, trong tâm trí của tôi, sẽ khó đọc hơn. Đặc biệt là xem xét mã này là cho mục đích của cuộc biểu tình – LorenVS

0

Tôi đã sử dụng this library trước khi thực hiện công việc khá tốt về những gì bạn đang theo dõi. Cụ thể là: -

qs.contains(name) 
    Returns true if the querystring has a parameter name, else false. 

    if (qs2.contains("name1")){ alert(qs2.get("name1"));} 
89

Bạn cũng có thể sử dụng một biểu thức chính quy:

/[?&]q=/.test(location.search) 
+4

Tôi thấy đây là giải pháp đơn giản nhất. –

+0

thực sự nó sẽ lok giống như: if (! New RegExp ("[? &] HfPageToken =").dữ liệu)) // nếu dữ liệu hfPageToken chưa có trong yêu cầu { s.data = s.data? [s.data, tokenParam] .join ("&"): tokenParam; } –

+0

Thiên tài, cảm ơn bạn. –

11

Các đồng bằng javascript mẫu mã mà trả lời câu hỏi của bạn theo nghĩa đen: javascript mẫu mã

return location.search.indexOf('q=')>=0; 

Các đồng bằng mà cố gắng để tìm tham số q có tồn tại không và nếu giá trị đó có giá trị:

var queryString=location.search; 
var params=queryString.substring(1).split('&'); 
for(var i=0; i<params.length; i++){ 
    var pair=params[i].split('='); 
    if(decodeURIComponent(pair[0])=='q' && pair[1]) 
     return true; 
} 
return false; 
+4

Ví dụ đầu tiên sẽ trả về true cho' fooq = bar' – mickadoo

5

một biến thể hơn, nhưng hầu như giống như Gumbos giải pháp:

var isDebug = function(){ 
    return window.location.href.search("[?&]debug=") != -1; 
}; 
0

Điều này sẽ giúp:

function getQueryParams(){ 
    try{ 
     url = window.location.href; 
     query_str = url.substr(url.indexOf('?')+1, url.length-1); 
     r_params = query_str.split('&'); 
     params = {} 
     for(i in r_params){ 
      param = r_params[i].split('='); 
      params[ param[0] ] = param[1]; 
     } 
     return params; 
    } 
    catch(e){ 
     return {}; 
    } 
} 
3

chức năng này giúp bạn để có được tham số từ URL trong JS

function getQuery(q) { 
    return (window.location.search.match(new RegExp('[?&]' + q + '=([^&]+)')) || [, null])[1]; 
} 
3

Sử dụng URL:

url = new URL(window.location.href); 

if (url.searchParams.get('test')) { 

} 
Các vấn đề liên quan