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