Extract parameter value from url using regular expressions

后端 未结 6 1645
抹茶落季
抹茶落季 2020-12-08 06:19

This should be very simple (when you know the answer). From this question

I want to give the posted solution a try. My question is:

How to get the parameter

相关标签:
6条回答
  • 2020-12-08 06:50

    Not tested but this should work:

    /\?v=([a-z0-9\-]+)\&?/i
    
    0 讨论(0)
  • 2020-12-08 06:54

    v is a query parameter, technically you need to consider cases ala: http://www.youtube.com/watch?p=DB852818BF378DAC&v=1q-k-uN73Gk

    In .NET I would recommend to use System.Web.HttpUtility.ParseQueryString

    HttpUtility.ParseQueryString(url)["v"];
    

    And you don't even need to check the key, as it will return null if the key is not in the collection.

    0 讨论(0)
  • 2020-12-08 06:54

    I know the question is Old and already answered but this can also be a solution

    \b[\w-]+$
    

    and I checked these two URLs

    http://www.youtube.com/watch?v=Ahg6qcgoay4
    https://www.youtube.com/watch?v=22hUHCr-Tos
    

    DEMO

    0 讨论(0)
  • 2020-12-08 06:56

    Why dont you take the string and split it

    Example on the url

    var url = "http://www.youtube.com/watch?p=DB852818BF378DAC&v=1q-k-uN73Gk"
    

    you can do a split as

    var params = url.split("?")[1].split("&");
    

    You will get array of strings with params as name value pairs with "=" as the delimiter.

    0 讨论(0)
  • 2020-12-08 07:10

    You almost had it, just need to escape special regex chars:

    regex = /http\:\/\/www\.youtube\.com\/watch\?v=([\w-]{11})/;
    
    url = 'http://www.youtube.com/watch?v=Ahg6qcgoay4';
    id = url.match(regex)[1]; // id = 'Ahg6qcgoay4'
    

    Edit: Fix for regex by soupagain.

    0 讨论(0)
  • 2020-12-08 07:13

    I use seperate custom functions which gets all URL Parameters and URL parts . For URL parameters, (which is the final part of an URI String, http://domain.tld/urlpart/?x=a&y=b

        function getUrlVars() {
        var vars = {};
        var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
            vars[key] = value;
        });
        return vars;
        }
    

    The above function will return an array consisting of url variables.

    For URL Parts or functions, (which is http://domain.tld/urlpart/?x=a&y=b I use a simple uri split,

    function getUrlParams() { 
        var vars = {};
        var parts = window.location.href.split('/' );
        return parts;
    }
    

    You can even combine them both to be able to use with a single call in a page or in javascript.

    0 讨论(0)
提交回复
热议问题