What is the easiest way to read/manipulate query string params using javascript?

后端 未结 7 1860
余生分开走
余生分开走 2020-12-05 11:45

The examples I\'ve seen online seem much more complex than I expected (manually parsing &/?/= into pairs, using regular expressions, etc). We\'re using asp.net

相关标签:
7条回答
  • 2020-12-05 12:09

    If there's any possibility of encountering repeated parameters (e.g. ?tag=foo&tag=bar), most libraries out there won't be sufficient. In that case, you might want to consider this library that I developed from Jan Wolter's very comprehensive parser. I added .plus() and .minus() functions and roundtripping:

    https://github.com/timmc/js-tools/blob/master/src/QueryString.js

    0 讨论(0)
  • 2020-12-05 12:10

    Use the String utility from prototypejs.org, called toQueryParams().

    Example from their site: http://prototypejs.org/api/string/toQueryParams

    'section=blog&id=45'.toQueryParams();
    // -> {section: 'blog', id: '45'}

    'section=blog;id=45'.toQueryParams();
    // -> {section: 'blog', id: '45'}

    'http://www.example.com?section=blog&id=45#comments'.toQueryParams();
    // -> {section: 'blog', id: '45'}

    'section=blog&tag=javascript&tag=prototype&tag=doc'.toQueryParams();
    // -> {section: 'blog', tag: ['javascript', 'prototype', 'doc']}

    'tag=ruby%20on%20rails'.toQueryParams();
    // -> {tag: 'ruby on rails'}

    'id=45&raw'.toQueryParams();
    // -> {id: '45', raw: undefined}

    Also, you may use the alias parseQuery() to obtain the same results.

    window.location.search.parseQuery();
    

    Since window.location returns an object, you must obtain the string.

    0 讨论(0)
  • 2020-12-05 12:13

    Take a look at my post, as it tells you exactly how to do this:

    http://seattlesoftware.wordpress.com/2008/01/16/javascript-query-string/

    0 讨论(0)
  • 2020-12-05 12:13

    For jQuery I suggest jQuery BBQ: Back Button & Query Library By "Cowboy" Ben Alman

    jQuery BBQ leverages the HTML5 hashchange event to allow simple, yet powerful bookmarkable #hash history. In addition, jQuery BBQ provides a full .deparam() method, along with both hash state management, and fragment / query string parse and merge utility methods.

    Example:

    // Parse URL, deserializing query string into an object.
    // http://www.example.com/foo.php?a=1&b=2&c=hello#test
    // search is set to ?a=1&b=2&c=hello
    // myObj is set to { a:"1", b:"2", c:"hello" }
    var search = window.location.search;
    var myObj = $.deparam.querystring( search );
    
    0 讨论(0)
  • 2020-12-05 12:16

    There is indeed a QueryString plugin for jQuery, if you're willing to install the jQuery core and the plugin it could prove useful.

    0 讨论(0)
  • 2020-12-05 12:18
      *$(document).ready(function () {
                $("#a").click(function () {
                    window.location.href = "secondpage.aspx?id='0' & name='sunil'& add='asr' & phone='1234'";
                });
            });*
    
    
    **then read the query string parameters on another using split method . Here as follows:**
    
    
      *$(document).ready(function () {
                var a = decodeURI(window.location.search);
                var id = window.location.search = "id=" + $().val();
                var name = a.split("name=")[1].split("&")[0].split("'")[1];
                var phone = a.split("phone=")[1].split("&")[0].split("'")[1];
                var add = a.split("add=")[1].split("&")[0].split("'")[1];
                alert(id+','+name+','+add+','+phone); 
            });*
    
    0 讨论(0)
提交回复
热议问题