Extraire la valeur du paramètre de l'url en utilisant des expressions régulières

Cela devrait être très simple (lorsque vous connaissez la réponse). À partir de cette question

Je souhaite essayer la solution posée. Ma question est:

Comment obtenir la valeur du paramètre d'une URL donnée en utilisant des expressions régulières JavaScript?

J'ai:

http://www.youtube.com/watch?v=Ahg6qcgoay4 

J'ai besoin:

 Ahg6qcgoay4 

J'ai essayé:

 http://www.youtube.com/watch\\?v=(w{11}) 

Mais: je suce …

Vous l'avez presque fait, il suffit d'échapper à des caractères spéciaux de regex:

 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: Correction pour regex par soupagain .

Pourquoi ne prenez-vous pas la chaîne et la divisez

Exemple sur l'url

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

Vous pouvez faire une fente comme

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

Vous obtiendrez un ensemble de chaînes avec params comme paires de valeur de nom avec "=" comme délimiteur.

V est un paramètre de requête, techniquement, vous devez considérer les cas ala: http://www.youtube.com/watch?p=DB852818BF378DAC&v=1q-k-uN73Gk

Dans .NET, je recommanderais d'utiliser System.Web.HttpUtility.ParseQueryString

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

Et vous n'avez même pas besoin de vérifier la clé, car elle renverra nulle si la clé n'est pas dans la collection.

Non testé mais cela devrait fonctionner:

 /\?v=([a-z0-9\-]+)\&?/i 

Je sais que la question est ancienne et déjà répondu mais cela peut aussi être une solution

 \b[\w-]+$ 

Et j'ai vérifié ces deux URL

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

DEMO