var params = new window.URLSearchParams(window.location.search);
console.log(params.get('name'));
1
function GetRequestParam(param)
{
var res = null;
try{
var qs = decodeURIComponent(window.location.search.substring(1));//get everything after then '?' in URI
var ar = qs.split('&');
$.each(ar, function(a, b){
var kv = b.split('=');
if(param === kv[0]){
res = kv[1];
return false;//break loop
}
});
}catch(e){}
return res;
}
1
我希望这将有所帮助 .
<script type="text/javascript">
function getParameters() {
var searchString = window.location.search.substring(1),
params = searchString.split("&"),
hash = {};
if (searchString == "") return {};
for (var i = 0; i < params.length; i++) {
var val = params[i].split("=");
hash[unescape(val[0])] = unescape(val[1]);
}
return hash;
}
$(window).load(function() {
var param = getParameters();
if (typeof param.sent !== "undefined") {
// Do something.
}
});
</script>
url = 'http://example.com?sent=yes';
sent = $.url(url).param('sent');
if (typeof sent != 'undefined') { // sent exists
if (sent == 'yes') { // sent is equal to yes
// ...
}
}
var uri = "http://example.org/foo.html?technology=jquery&technology=css&blog=stackoverflow";
var components = URI.parse(uri);
var query = URI.parseQuery(components['query']);
document.getElementById("result").innerHTML = "URI = " + uri;
document.getElementById("result").innerHTML += "<br>technology = " + query['technology'];
// If you look in your console, you will see that this library generates a JS array for multi-valued queries!
console.log(query['technology']);
console.log(query['blog']);
function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
Usage Example
// query string: ?first=value1&second=&value2
var foo = getParameterByName('first'); // "value1"
var bar = getParameterByName('second'); // "value2"
function queryParameters () {
var result = {};
var params = window.location.search.split(/\?|\&/);
params.forEach( function(it) {
if (it) {
var param = it.split("=");
result[param[0]] = param[1];
}
});
return result;
}
function urlParam(name){
var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
// Need to decode the URL parameters, including putting in a fix for the plus sign
// https://stackoverflow.com/a/24417399
return results ? decodeURIComponent(results[1].replace(/\+/g, '%20')) : null;
}
var url = 'http://example.com?sent=yes';
var urlParams = new URI(url).search(true);
// 1. Does sent exist?
var sendExists = urlParams.sent !== undefined;
// 2. Is it equal to "yes"?
var sendIsEqualtToYes = urlParams.sent == 'yes';
// output results in readable form
// not required for production
if (sendExists) {
console.log('Url has "sent" param, its value is "' + urlParams.sent + '"');
if (urlParams.sent == 'yes') {
console.log('"Sent" param is equal to "yes"');
} else {
console.log('"Sent" param is not equal to "yes"');
}
} else {
console.log('Url hasn\'t "sent" param');
}
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
var first = getUrlVars()["id"];
var urlParams = location.search.substring(1).split('&'),
params = {};
urlParams.forEach(function(el){
var tmpArr = el.split('=');
params[tmpArr[0]] = tmpArr[1];
});
var error = params['error'];
var type = params['type'];
30 回答
试试这个 working demo http://jsfiddle.net/xy7cX/
API:
inArray
:http://api.jquery.com/jQuery.inArray/这应该有帮助
:)
code
又一个替代功能......
最佳解决方案here .
这就是你可以使用这个函数假设URL是,
http://dummy.com/?technology=jquery&blog=jquerybyexample
.jQuery代码片段,用于将存储在url中的动态变量作为参数存储,并将它们存储为可随脚本使用的JavaScript变量:
example.com?param1=name¶m2=&id=6
例如带空格的参数
来自 2018 的解决方案
我们有:http://example.com?sent=yes
发送 exist ?
是 equal 到"yes"?
然后只是比较它 .
我总是坚持这一行 . 现在params有vars:
多行:
作为一个功能
你可以用作:
要么
可能为时已晚 . 但这种方法非常简单易行
UPDATE
需要url插件:plugins.jquery.com/url
谢谢-Ripounet
或者你可以使用这个整洁的小功能,因为 why overcomplicated solutions?
在简化和onelined时看起来更好:
tl;博士一线解决方案
但是如果你有编码字符或多值键怎么办?
你最好看到这个答案:How can I get query string values in JavaScript?
潜行峰值
也许你可能想给_932007看看? (免责声明:我写了代码)
code:
使用Dentist JS,您基本上可以对所有字符串调用extract()函数(例如,document.URL.extract()),然后返回找到的所有参数的HashMap . 它也可以自定义处理分隔符和所有 .
缩小版<1kb
这个很简单,对我有用
所以如果你的网址是http://www.yoursite.com?city=4
试试这个
使用
URLSearchParams
:我希望这将有所帮助 .
这是一个很棒的图书馆:https://github.com/allmarkedup/purl
这让你做得很简单
这个例子假设你正在使用jQuery . 您也可以像普通的javascript一样使用它,语法会有所不同 .
这可能有些过分,但现在有一个非常流行的库可用于解析URI,称为URI.js .
示例
如此简单,你可以使用任何网址并获得 Value
Usage Example
注意:如果参数多次出现(?first = value1&second = value2),您将获得第一个值(value1),第二个值为(value2) .
这将为您提供一个很好的对象
然后;
这基于Gazoris的答案,但URL解码参数,以便在它们包含数字和字母以外的数据时使用它们:
使用URI.js库还有另一个例子 .
示例完全按照要求回答问题 .
Samefe的Coffeescript版本的答案
对Sameer的回答略有改进,将params缓存到闭包中以避免每次调用时解析和循环遍历所有参数
我使用它,它的工作原理 . http://codesheet.org/codesheet/NF246Tzs
使用vanilla JavaScript,您可以轻松地使用params(location.search),获取子字符串(不带?)并将其转换为数组,方法是将其拆分为“&” .
当您遍历urlParams时,您可以再次使用'='拆分字符串,并将其作为对象[elmement [0]] = element [1]添加到'params'对象中 . 超级简单,易于访问 .
http://www.website.com/?error=userError&type=handwritten
如果在&filename参数中有&,如filename =“p&g.html”&uid = 66,该怎么办?
在这种情况下,第一个功能将无法正常工作 . 所以我修改了代码
不可否认,我正在为一个过度回答的问题添加我的答案,但这有以下优点:
不依赖于任何外部库,包括jQuery
通过扩展'String'不污染全局函数名称空间
未创建任何全局数据并在找到匹配后执行不必要的处理
处理编码问题,并接受(假设)非编码参数名称
避免显式的
for
循环那你就用它作为:
如果要从特定URL中查找特定参数:
最佳解决方案here .
使用上述功能,您可以获得单个参数值:
另一种使用jQuery和JSON的解决方案,因此您可以通过对象访问参数值 .
假设您的网址是
http://example.com/?search=hello+world&language=en&page=3
后这只是使用这样的参数的问题:
回来
最有用的用法是在页面加载时运行它,并使用全局变量在任何可能需要的地方使用参数 .
如果您的参数包含数值,则只需解析该值 .
如果没有参数,
param
将只是一个空对象 .用这个