[英]Case-Sensitive Jquery getQuery URL Param
我希望这对某人来说是一个快速的答案。 我已经构建了一个表单,它将一些查询参数传递到 URL 的末尾,并且我正在使用 Jquery 根据参数名称获取参数值。 我的 JQuery 代码似乎区分大小写,这会导致一些问题。 例如,我的参数名称是“Blah”,而我的 Jquery 代码正在寻找“blah”,但它不起作用。 有没有一种简单的方法可以将此代码更新为不区分大小写,这样我就不必手动考虑所有可能的情况(例如 blah、Blah、BLAH、blAh、blaH 等)?
样品 Jquery 代码:
(function ($) {
$.getQuery = function (query) {
query = query.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var expr = "[\\?&]" + query + "=([^&#]*)";
var regex = new RegExp(expr);
var results = regex.exec(window.location.href);
if (results !== null) {
return results[1];
return decodeURIComponent(results[1].replace(/\+/g, " "));
} else {
return false;
}
};
})(jQuery);
var lang = $.getQuery('blah');
我也有在 JavaScript 中使用的类似代码,它也区分大小写。 有没有一种简单的方法可以将此代码更改为不区分大小写?
var dURL = document.URL;
function getParams() { //Get Name and (=) Values out of URL string after each &
var idx = dURL.indexOf('?');
var pnd = dURL.indexOf('#');
var fparams = new Array();
if (idx > -1) {
if (pnd > idx) {
var pairs = dURL.substring(idx + 1, (pnd - idx)).split('&');
} else {
var pairs = dURL.substring(idx + 1, document.URL.length).split('&');
}
for (var i = 0; i < pairs.length; i++) {
nameVal = pairs[i].split('=');
fparams[nameVal[0]] = nameVal[1];
}
}
return fparams;
}
var params = getParams();
if (params["blah"] != window.undefined) {
lang = unescape(params["blah"]);
} else {
blah= '';
}
任何可以提供的信息将不胜感激!
使用 js toLower 应该可以
(function ($) {
$.getQuery = function (query) {
query = query.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var expr = "[\\?&]" + query + "=([^&#]*)";
var regex = new RegExp(expr);
var results = regex.exec(window.location.href.toLower());
if (results !== null) {
return results[1];
return decodeURIComponent(results[1].replace(/\+/g, " "));
} else {
return false;
}
};
})(jQuery);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.