[英]How do I get multiple comma separated values from URL
我有一個像這樣的網址:
http://www.mysite.com/index.html?x=x1&x=x2&x=x3
我如何使用JavaScript或JQuery獲得如下的值:
var x='x1,x2,x3'
var url = "http://www.mysite.com/index.html?x=x1&x=x2&x=x3";
var params = url.match(/\?(.*)$/)[1].split('&');
var values = [];
for(var i=0; i<params.length; i++){
values.push( params[i].match(/=(.*)$/)[1] );
}
var result = values.join(","); // "x1,x2,x3"
編輯 :這是一個更好的解決方案,可讓您選擇所需的參數。 這是我發現埋在我的一個項目中的東西,我沒有寫出它的每一部分。
function $_GET(param) {
var query = window.location.search.substring(1);
var vars = query.split('&');
var values = [];
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split('=');
if (urldecode(pair[0]) == param) {
values.push(urldecode(pair[1]));
}
}
return values.join(",");
}
// Decode URL with the '+' character as a space
function urldecode(url) {
return decodeURIComponent(url.replace(/\+/g, ' '));
}
如果您直接點擊網址,則可以將其用作
var fieldValue = ['x1','x2','x3'];
var searchValue = 'x='+ fieldValue.join(',');
window.location.search = searchValue;
這將命中當前url以搜索給定參數的數據。
如果您想手動創建網址,則點擊搜索
var url = "http://www.mysite.com/index.html";
window.location.href = url;
var fieldValue = ['x1','x2','x3'];
var searchValue = 'x='+ fieldValue.join(',');
window.location.search = searchValue;
現在,您可以根據需要搜索值。
我認為你需要的是PURL。 有關詳細用法和指南,請參閱https://github.com/allmarkedup/purl
function GetUrlValue(VarSearch){
var SearchString = window.location.search.substring(1);
var VariableArray = SearchString.split('&');
for(var i = 0; i < VariableArray.length; i++){
var KeyValuePair = VariableArray[i].split('=');
if(KeyValuePair[0] == VarSearch){
return KeyValuePair[1];
}
}
}
在這里閱讀http://javascriptproductivity.blogspot.in/2013/02/get-url-variables-with-javascript.html
您可以使用jquery split
在jquery中輕松查找query string
嘗試使用此函數將Query String
作為數組對象獲取:
function getUrlVars()
{
var vars = [];
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[1]);
}
return vars;
}
該函數返回一個數組/對象,其中包含您的URL參數及其值。 因此,您可以使用jquery .join()
將其轉換為逗號分隔值:
var result = vars.join(",");
也許使用正則表達式:
var s = window.location.search;
var foo = s.match(/x=([0-9a-zA-Z]+)/g).join(",").replace(/x=/g, ""); // x1,x2,x3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.