我正在尝试小写查询字符串并获取值,即使URL是大写字母。
这是有效的 - 我可以获得价值:
?serialid=1234
这不起作用 - 我无法获得价值(资本S):
?Serialid=1234
我想匹配这两种情况。
我的剧本:
$(document).ready(function () {
var a = getQueryString("serialid");
$('#SerialIdHP').val(a);
});
function getQueryString(key) {
var vars = [],
hash;
var hashes = (window.location.href.slice(window.location.href.indexOf('?') + 1).split('&')).toString().toLowerCase();
for (var i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars[key];
}
答案 0 :(得分:2)
使用toLowerCase()
转换密钥
function getQueryString(url, key) {
var vars = [],
hash;
var hashes = (url.slice(url.indexOf('?') + 1).split('&'));
for (var i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0].toLowerCase());
vars[hash[0].toLowerCase()] = hash[1];
}
return vars[key.toLowerCase()];
}
var url = "http://something.com?serialid=1234 "
var a = getQueryString(url, "SerialId");
alert(a);
答案 1 :(得分:0)
$(document).ready(function () {
var a = getQueryString("serialid").toLowerCase();
$('#SerialIdHP').val(a);
});
function getQueryString(key) {
var vars = [],
hash;
var hashes = (window.location.href.slice(window.location.href.indexOf('?') + 1).split('&')).toString().toLowerCase();
for (var i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars[key];
}
答案 2 :(得分:0)
这是一个更简单的功能,可以完成大部分繁重的工作。它检索对象中的查询变量:
function parseQuery(query) {
var queryvars = {}
, patt = /[?&]([^&]+)=([^&]+)/g;
decodeURIComponent(query).replace(patt, function(_, key, val){
queryvars[key.toLowerCase()] = val;
});
return queryvars;
}
var queryvars - parseQuery('?Serialid=1234');
//^ {
// serialid: "1234"
// }
queryvars
将包含key:value对中url的所有变量。要访问变量并确保它始终是小写的,您可以创建另一个帮助程序:
function getQueryVar(key, query) {
return parseQuery(query)[key.toLowerCase()];
}
var serialid = getQueryVar('SerialID', window.location.search);
答案 3 :(得分:0)
一般来说,我反对你在这里尝试实现的方法,因为你应该准确知道查询参数的名称(包括个案)。
无论如何,您正在寻找的答案是:
$(document).ready(function () {
var a = getQueryString("serialid");
$('#SerialIdHP').val(a);
});
function getQueryString(parameter) {
var regex = new RegExp(parameter + "=([^&$]*)","i");
var match = window.location.search.match(regex);
return match ? match[1] : '';
}