Get a variable from url parameter using Javascript

后端 未结 4 1993
旧时难觅i
旧时难觅i 2020-12-17 00:56

I am trying to get a url value using javascript, so far I can only get pure numbers, not mixed numbers with letters or just letters. I can\'t find any working examples of a

相关标签:
4条回答
  • 2020-12-17 01:35

    Your approach should work. Here's my version for comparison:

    var o = {
        keys: [ ],
       values: [ ]
    }
    
    /* 
    You could just use the window#location#search value to get the query sub-String of the currently loaded URL
    
     var q = window.location.search.substring(1) ; 
    
    For now we'll use a query String from a Google search for "MDN window location"
    */
    
    q = "q=mdn+window+location&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:de:official&client=firefox-a"
    
    for( var i = 0 , a = q.split("&"), p ; i < a.length ; i++ ) {
        p = a[i] ;
        if(  ( b = p.split("=") )  !=  null ) {
            o.keys[i] = b[0] ;
            o.values[i] = b[1] ;
        }
    }
    
    
    console.log("(!!) o: " + o.toSource( ) ) ;
    

    • try it on JSFiddle
    0 讨论(0)
  • 2020-12-17 01:46

    I use this function, and it rocks. I don't remember from where I took it, but it's a good one:

    function gup(name) {
        name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
        var regexS = "[\\?&]" + name + "=([^&#]*)";
        var regex = new RegExp(regexS);
        var results = regex.exec(window.location.href);
        if (results == null)
            return "";
        else
            return results[1];
    } 
    

    If you have a URL like http://www.exmaple.com/path?p1=lkjsd234&p2=klsjd987, you can use:

    alert(gup('p1')); // shows 'lkjsd234';
    
    0 讨论(0)
  • 2020-12-17 01:49

    Here is a condensed version of two of the answers above :

    function gup (name) {
      name = RegExp ('[?&]' + name.replace (/([[\]])/, '\\$1') + '=([^&#]*)');
      return (window.location.href.match (name) || ['', ''])[1];
    }
    

    Easier to type, easier on processing and, IMHO easier to read. YMMV

    0 讨论(0)
  • 2020-12-17 01:57

    Your code looks like it should work I use the function below if it helps

     function getParam(name){
        name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
        var regexS = "[\\?&]"+name+"=([^&#]*)";
        var regex = new RegExp( regexS );
        var results = regex.exec (window.location.href);
        if (results == null)
            return "";
            else
            return results[1];  
    }
    
    var first = getParam("test");
    
    0 讨论(0)
提交回复
热议问题