我见过很多jQuery示例,其中参数大小和名称都是未知的。
我的URL只会有一个字符串
http://example.com?sent=yes
我只想检测:
sent存在吗? 它等于"是"吗?
我见过很多jQuery示例,其中参数大小和名称都是未知的。
我的URL只会有一个字符串
http://example.com?sent=yes
我只想检测:
sent存在吗? 它等于"是"吗?
当前回答
var RequestQuerystring; (窗口。Onpopstate = function () { var匹配, pl = /\+/g, //用空格替换加法符号的正则表达式 搜索= /([^&=]+)=?([^&]*)/g, decode =函数(s){返回decodeURIComponent(s)。替换(pl, " "));}, Query = window.location.search.substring(1); RequestQuerystring = {}; While (match = search.exec(查询)) RequestQuerystring[decode(match[1])] = decode(match[2]); })();
RequestQuerystring现在是一个包含所有参数的对象
其他回答
试试这个工作演示http://jsfiddle.net/xy7cX/
火:
inArray: http://api.jquery.com/jQuery.inArray/
这应该会有帮助:)
code
var url = "http://myurl.com?sent=yes"
var pieces = url.split("?");
alert(pieces[1] + " ===== " + $.inArray("sent=yes", pieces));
我希望这能有所帮助。
<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>
从字符串中获取参数:
Object.defineProperty(String.prototype, 'urlParam', {
value: function (param) {
"use strict";
var str = this.trim();
var regex = "[\?&]" + param + "=([^&#]*)";
var results = new RegExp(regex, "i").exec(str);
return (results !== null) ? results[1] : '';
}
});
使用方法:
var src = 'http://your-url.com/?param=value'
console.log(src.urlParam(param)); // returns 'value'
还有另一种功能……
function param(name) {
return (location.search.split(name + '=')[1] || '').split('&')[0];
}
这里有一个很棒的图书馆: https://github.com/allmarkedup/purl
这能让你做得更简单
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
// ...
}
}
这个例子假设您正在使用jQuery。你也可以使用它只是简单的javascript,语法会有点不同。