Je veux obtenir l' v=id
URL de YouTube avec JavaScript (pas de jQuery, pur JavaScript).
Exemples de formats d'URL YouTube
http://www.youtube.com/watch?v=u8nQa1cJyX8&a=GxdCwVVULXctT2lYDEPllDR0LRTutYfW
http://www.youtube.com/watch?v=u8nQa1cJyX8
Ou tout autre format YouTube contenant un identifiant vidéo dans l'URL.
Résultat de ces formats
u8nQa1cJyX8
javascript
regex
url
youtube
Adam
la source
la source
Réponses:
Vous n'avez pas besoin d'utiliser une expression régulière pour cela.
la source
https://youtu.be/{{video_id}}
url='https://youtu.be/{{video_id}}'; url.match(/(?:https?:\/{2})?(?:w{3}\.)?youtu(?:be)?\.(?:com|be)(?:\/watch\?v=|\/)([^\s&]+)/);
J'ai apporté une amélioration à Regex fournie par "jeffreypriebe" car il avait besoin d'une sorte d'URL YouTube qui est l'URL des vidéos quand elles regardent sur une chaîne.
Eh bien non, mais c'est la fonction que j'ai armée.
Ce sont les types d'URL pris en charge
Peut être trouvé dans [http://web.archive.org/web/20160926134334/] http://lasnv.net/foro/839/Javascript_parsear_URL_de_YouTube
la source
/.*(?:youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=)([^#\&\?]*).*/
utilisez ensuitematch[1]
au lieu dematch[7]
(ce qui m'a paru un peu arbitraire). Corrige également un bug signalé par WebDev.J'ai un peu simplifié la réponse de Lasnv.
Il corrige également le bogue décrit par WebDeb.
C'est ici:
Voici un lien regexer pour jouer avec: http://regexr.com/3dnqv
la source
Aucun de ceux-ci ne fonctionnait sur l'évier de la cuisine au 1/1/2015, notamment les URL sans protocole http / s et avec le domaine youtube-nocookie. Voici donc une version modifiée qui fonctionne sur toutes ces différentes versions de Youtube:
la source
^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/)|(?:(?:watch)?\?v(?:i)?=|\&v(?:i)?=))([^#\&\?]+).*
(c'est-à-dire que youtube.com/watch?v= ne correspondra pas)Testé sur:
Inspiré par cette autre réponse .
la source
Étant donné que YouTube a une variété de styles d'URL, je pense que Regex est une meilleure solution. Voici mon Regex:
Le groupe 3 a votre identifiant YouTube
Exemples d'URL YouTube (actuellement, y compris le "style d'URL intégré hérité") - le Regex ci-dessus fonctionne sur chacun d'eux:
Pointe du chapeau à Lasnv
la source
"domain.com/embed/file.txt"
,"/tv/"
et"Has anyone seen my watch?"
. Voir: ma réponse à une question similaire pour une solution beaucoup plus précise.J'ai créé une fonction qui teste une entrée utilisateur pour les identifiants intégrés Youtube, Soundcloud ou Vimeo, afin de pouvoir créer une conception plus continue avec des médias intégrés. Cette fonction détecte et retourne un objet avec deux propriétés: "type" et "id". Le type peut être "youtube", "vimeo" ou "soundcloud" et la propriété "id" est l'identifiant unique du média.
Sur le site, j'utilise un vidage de la zone de texte, où l'utilisateur peut coller n'importe quel type de lien ou de code d'intégration, y compris l'intégration iFrame de Vimeo et de YouTube.
la source
Tard dans le jeu ici, mais j'ai mélangé deux excellentes réponses de mantish et jw. Tout d'abord, l'expression rationnelle modifiée:
Voici le code de test (j'ai ajouté les cas de test originaux de mantish aux plus méchants de jw):
Version expérimentale pour gérer les URL m.youtube mentionnées dans les commentaires:
Il doit
parsed[2]
être changéparsed[3]
en deux endroits dans les tests (qu'il passe ensuite avec desm.youtube
URL ajoutées aux tests). Faites-moi savoir si vous voyez des problèmes.la source
http://youtu.be/
si j'ajoute le,/
il le marque comme valide. L'utiliser dans(value) => /^.*(youtu\.be\/|vi?\/|u\/\w\/|embed\/|\?vi?=|\&vi?=)([^#\&\?]*).*/.test(value)
tl; dr.
Correspond à tous les exemples d'URL sur cette question, puis à certains.
L'ID sera toujours dans le groupe de correspondance 7.
Exemples en direct de toutes les URL que j'ai extraites des réponses à cette question: https://regexr.com/3u0d4
Explication complète:
Comme de nombreuses réponses / commentaires ont été évoqués, il existe de nombreux formats pour les URL de vidéos YouTube. Même plusieurs TLD où ils peuvent sembler être "hébergés".
Vous pouvez consulter la liste complète des variantes avec lesquelles j'ai vérifié en suivant le lien regexr ci-dessus.
Permet de décomposer le RegExp.
^
Verrouillez la chaîne au début de la chaîne.(https?:\/\/)?
Protocoles facultatifs http: // ou https: // Le?
rend l'élément précédent facultatif de sorte que les
puis l'ensemble du groupe (tout ce qui est enfermé dans un ensemble de parenthèses) sont facultatifs.Ok, cette partie suivante en est la viande. Fondamentalement, nous avons deux options, les différentes versions de www.youtube.com/...[id] et la version raccourcie de youtu.be/[id].
Enfin, nous avons le groupe pour sélectionner l'ID vidéo. Au moins un caractère qui est un nombre, une lettre, un trait de soulignement ou un tiret.
Vous pouvez découvrir beaucoup plus de détails sur chaque partie de l'expression régulière en vous dirigeant sur le lien de l'expression régulière et en voyant comment chaque partie de l'expression correspond au texte de l'url.
la source
La meilleure solution (de 2019-2020) que j'ai trouvée est que:
Je l'ai trouvé ici .
la source
Étant donné que les identifiants vidéo YouTube sont définis sur 11 caractères , nous pouvons simplement
substring
après avoir divisé l'URL avecv=
. Ensuite, nous ne dépendons pas de l'esperluette à la fin.Agréable et simple :)
la source
J'ai résumé toutes les suggestions et voici la réponse universelle et courte à cette question:
la source
Code Java: (Fonctionne pour toutes les URL:
)
Pour DailyMotion:
la source
Version légèrement plus stricte:
Testé sur:
la source
Vous pouvez utiliser le code suivant pour obtenir l'ID de vidéo YouTube à partir d'une URL:
la source
Une version légèrement modifiée de la seule mantish publiée:
Cela suppose que le code comporte toujours 11 caractères. J'utilise ceci dans ActionScript, je ne sais pas si {11,11} est pris en charge en Javascript. Ajout de la prise en charge de & v = .... (juste au cas où)
la source
Cela nécessite définitivement regex:
Copiez dans Ruby IRB:
Voir pour tous les cas de test: https://gist.github.com/blairanderson/b264a15a8faaac9c6318
la source
Un de plus:
Cela fonctionne avec n'importe quelle URL affichée dans ce fil.
Cela ne fonctionnera pas lorsque YouTube ajoute un autre paramètre avec 11 caractères base64. Jusque-là, c'est la voie facile.
la source
J'ai fait une petite fonction pour extraire l'identifiant vidéo d'une URL Youtube qui peut être vue ci-dessous.
Cette fonction extraira l'identifiant vidéo même s'il y a plusieurs paramètres dans l'url.
la source
Cela peut obtenir l'identifiant vidéo de tout type de liens youtube
la source
J'ai aimé la réponse de Surya .. Juste un cas où cela ne fonctionnera pas ...
ne fonctionne pas pour
Version mise à jour:
fonctionne pour tous.
la source
Essaye celui-là -
la source
Exemple de nettoyeur Chris Nolet de réponse Lasnv est très bon, mais j'ai récemment découvert que si vous essayez de trouver votre lien youtube dans du texte et de mettre du texte aléatoire après l'url youtube, l'expression rationnelle correspond bien plus que nécessaire. Amélioration de la réponse de Chris Nolet:
la source
Pour tester:
la source
Eh bien, la façon de le faire avec une analyse simple serait: obtenir tout en commençant après le premier signe = au premier signe & .
Je pense qu'ils ont eu une réponse similaire ici:
Analyser un ID Vimeo à l'aide de JavaScript?
la source
&
?Nous savons que ces caractères "? V =" ne peuvent jamais apparaître plus d'un, mais "v" peut apparaître d'une manière ou d'une autre dans l'Id lui-même, nous utilisons donc "? V =" comme délimiteur. Voyez-le travailler ici
la source
Regex simple si vous avez l'URL complète, restez simple.
la source
j'espère que ça peut aider
la source
Le plus court et le plus efficace
la source
Comme webstrap l'a mentionné dans un commentaire :
la source