Чувствительный к регистру Jquery getQuery URL Param - PullRequest
0 голосов
/ 03 апреля 2020

Я надеюсь, что это быстрый ответ для кого-то. Я построил форму, которая передает несколько параметров запроса в конец URL, и я использую Jquery, чтобы получить значения параметров, основанные на именах параметров. Мой код JQuery чувствителен к регистру, что вызывает некоторые проблемы. Например, мое имя параметра «Blah», а мой код Jquery ищет «blah», и он не будет работать. Есть ли простой способ обновить этот код без учета регистра, чтобы мне не приходилось вручную учитывать все возможные случаи (например, бла, бла, бла, блах, бла, и т. Д. c.)?

Образец 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= '';
       }

Любая информация, которая может быть предоставлена, будет принята с благодарностью!

1 Ответ

0 голосов
/ 03 апреля 2020

Использование js для того, чтобы нижний должен работать

(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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...