Javascript 无法将查询字符串小写
我正在尝试将查询字符串小写并获取值,即使URL使用大写字母 这是有效的-我可以得到值:Javascript 无法将查询字符串小写,javascript,Javascript,我正在尝试将查询字符串小写并获取值,即使URL使用大写字母 这是有效的-我可以得到值: ?serialid=1234 ?Serialid=1234 $(document).ready(function () { var a = getQueryString("serialid"); $('#SerialIdHP').val(a); }); function getQueryString(key) { var vars = [],
?serialid=1234
?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];
}
这不起作用-我无法获取值(大写S):
?serialid=1234
?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];
}
我想匹配两种情况
我的脚本:
?serialid=1234
?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];
}
$(文档).ready(函数(){
var a=getQueryString(“serialid”);
$('#SerialIdHP').val(a);
});
函数getQueryString(键){
var vars=[],
搞砸
var hashes=(window.location.href.slice(window.location.href.indexOf('?'))+1.split('&')).toString().toLowerCase();
for(var i=0;i
$(文档).就绪(函数(){
var a=getQueryString(“serialid”).toLowerCase();
$('#SerialIdHP').val(a);
});
函数getQueryString(键){
var vars=[],
搞砸
var hashes=(window.location.href.slice(window.location.href.indexOf('?'))+1.split('&')).toString().toLowerCase();
for(var i=0;i
使用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);
函数getQueryString(url,键){
var vars=[],
搞砸
var散列=(url.slice(url.indexOf('?'))+1.split('&');
for(var i=0;i演示:这里有一个简单的函数,可以完成大部分繁重的工作。它检索对象中的查询变量:
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
将包含url中以小写字母表示的所有变量,并以键:值对的形式显示。要访问该变量并确保其始终为小写,可以装箱另一个助手:
function getQueryVar(key, query) {
return parseQuery(query)[key.toLowerCase()];
}
var serialid = getQueryVar('SerialID', window.location.search);
通常,我反对您在这里尝试实现的方法,因为您应该准确地知道查询参数的名称(包括案例) 不管怎样,你想要的答案是:
$(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] : '';
}
您可以在
vars=[]
中推送lowercase
,比如hash[0].toLowerCase()
,还可以使用“getQueryString(“serialid”).toLowerCase()”在分割/拆分字符串之前,我会使用toLowerCase()函数。您有什么理由需要不区分大小写地读取这些参数吗?如果您试图处理查询字符串,您应该知道这些参数的确切名称(包括它们的大小写)。这里您试图实现的是惰性。如果只返回其中一个参数,那么创建参数数组的原因是什么?我认为最好将此函数的返回大小写降低,这样,当您不想将查询字符串的大小写降低时,也可以使用此函数