Cela devrait être très simple (quand vous connaissez la réponse). De cette question
Je veux essayer la solution affichée. Ma question est:
Comment obtenir la valeur de paramètre d'une URL donnée à l'aide d'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 eu, il vous suffit d'échapper aux 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 de regex par soupagain .
Pourquoi ne pas prendre la ficelle et la fendre
Exemple sur l'URL
var url = "http://www.youtube.com/watch?p=DB852818BF378DAC&v=1q-k-uN73Gk"
vous pouvez faire une scission comme
var params = url.split("?")[1].split("&");
Vous obtiendrez un tableau de chaînes avec params comme paires nom-valeur avec "=" comme délimiteur.
v est un paramètre de requête. Techniquement, vous devez également prendre en compte les cas suivants: 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 retournera null 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 que nous y avons 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