我想v=id从JavaScript 获取YouTube的URL(没有jQuery,纯JavaScript).
http://www.youtube.com/watch?v=u8nQa1cJyX8&a=GxdCwVVULXctT2lYDEPllDR0LRTutYfW
http://www.youtube.com/watch?v=u8nQa1cJyX8
或者在网址中包含视频ID的任何其他YouTube格式.
u8nQa1cJyX8
我正在尝试使用preg_match解析youtube网址的视频ID.我在这个网站上找到了一个似乎有效的正则表达式;
(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+
Run Code Online (Sandbox Code Playgroud)
如图所示:

我的PHP如下,但它不起作用(给出未知修饰符'['错误)...
<?
$subject = "http://www.youtube.com/watch?v=z_AbfPXTKms&NR=1";
preg_match("(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+", $subject, $matches);
print "<pre>";
print_r($matches);
print "</pre>";
?>
Run Code Online (Sandbox Code Playgroud)
干杯
我编写的功能允许用户输入Youtube视频网址.我想从这些网址中提取视频ID.
Youtube API是否支持我传递链接的某种功能,它会提供视频ID作为回报.或者我必须自己解析字符串?
我正在使用PHP ...我希望在这方面有任何指针/代码示例.
谢谢
我从www.youtube.com/watch?v=xxxxxxx这样的链接中获取了此代码以获取youtube ID
URL youtubeURL = new URL(link);
youtubeURL.getQuery();
Run Code Online (Sandbox Code Playgroud)
基本上这会让我很容易识别v = xxxxxxxx
但我注意到有时youtube链接会是这样的
http://gdata.youtube.com/feeds/api/videos/xxxxxx
Run Code Online (Sandbox Code Playgroud)
我从一个feed获取链接所以我需要为它构建一个正则表达式,还是一个解析器为我得到它?
之前已经问过这个问题,我发现了这个问题:
但我正在寻找一些略有不同的东西.
我需要匹配Youtube ID本身兼容所有可能的youtube链接格式.不仅仅是从youtube.com开始.
例如:
http://www.youtube.com/watch?v=-wtIMTCHWuI
http://www.youtube.com/v/-wtIMTCHWuI?version=3&autohide=1
http://youtu.be/-wtIMTCHWuI
http://www.youtube.com/oembed?url=http%3A//www.youtube.com/watch?v%3D-wtIMTCHWuI&format=json
http://s.ytimg.com/yt/favicon-wtIMTCHWuI.ico
http://i2.ytimg.com/vi/-wtIMTCHWuI/hqdefault.jpg
是否有一个聪明的策略,我可以用来匹配-wtIMTCHWuI兼容所有这些格式的视频ID .我正在考虑字符计数和匹配= ? / . &字符.
我已经看了很多,我已经看到很多方法可以解析youtube的网址上的视频ID,但是,没有一个方法可以匹配YouTube网址所能提供的各种格式.我已经尝试过搞乱使用正则表达式在之前的帖子中,但似乎没有任何效果.
我发现最接近所有URL格式的帖子是这样的:如何使用正则表达式在字符串中找到所有YouTube视频ID?
但是,这不适用于:http: //www.youtube.com/sandalsResorts#p/c/54B8C800269D7C1B/0/FJUvudQsKCM
我在Javascript中这样做.有人可以帮忙吗?!
Thanx提前.
我正在使用的当前URL格式和脚本:
var url = "http://www.youtube.com/sandalsResorts#p/c/54B8C800269D7C1B/0/FJUvudQsKCM";
//var url = "http://www.youtube.com/user/Scobleizer#p/u/1/1p3vcRhsYGo";
//var url = "http://youtu.be/NLqAF9hrVbY";
//var url = "http://www.youtube.com/embed/NLqAF9hrVbY";
//var url = "https://www.youtube.com/embed/NLqAF9hrVbY";
//var url = "http://www.youtube.com/v/NLqAF9hrVbY?fs=1&hl=en_US";
//var url = "http://www.youtube.com/watch?v=NLqAF9hrVbY";
//var url = "http://www.youtube.com/user/Scobleizer#p/u/1/1p3vcRhsYGo";
//var url = "http://www.youtube.com/ytscreeningroom?v=NRHVzbJVx8I";
//var url = "http://www.youtube.com/user/Scobleizer#p/u/1/1p3vcRhsYGo";
//var url = "http://www.youtube.com/watch?v=JYArUl0TzhA&feature=featured";
var videoID = url.match(/(?:youtu\.be\/|youtube\.com(?:\/embed\/|\/v\/|\/watch\?v=|\/user\/\S+|\/ytscreeningroom\?v=))([\w\-]{10,12})\b/)[1];
alert(videoID);
Run Code Online (Sandbox Code Playgroud) 我正在尝试检查网址是否是有效的YouTube视频网址,并从中获取youtube视频ID,到目前为止我使用的是一个简单的javascript拆分功能以实现此目的,但是由于youtube有多个网址,因此这有一些小的缺点.
我一直在查看其他stackoverflow线程,但是它们只支持1个特定的URL,这不是我需要的.
我需要一些匹配所有这些URL的东西:
HTTP(S)://www.youtu.be/videoID
HTTP(S)://www.youtube.com/watch V = VIDEOID
(以及脚本自动检测是否包含youtube视频的任何其他短URL)
任何可以由浏览器快速/高效处理的想法都非常感谢!
我需要解析几个页面才能获得所有的Youtube ID.
我在网上发现了很多正则表达式,但是:Java不完整(它们除了ID之外还给我垃圾,或者他们错过了一些ID).
我发现似乎完整的那个是在这里托管的.但它是用JavaScript和PHP编写的.不幸的是我无法将它们翻译成JAVA.
有人可以帮我在Java中重写这个PHP正则表达式或以下的JavaScript吗?
'~
https?:// # Required scheme. Either http or https.
(?:[0-9A-Z-]+\.)? # Optional subdomain.
(?: # Group host alternatives.
youtu\.be/ # Either youtu.be,
| youtube\.com # or youtube.com followed by
\S* # Allow anything up to VIDEO_ID,
[^\w\-\s] # but char before ID is non-ID char.
) # End host alternatives.
([\w\-]{11}) # $1: VIDEO_ID is exactly 11 chars.
(?=[^\w\-]|$) # Assert next char is non-ID or EOS.
(?! # Assert URL is not …Run Code Online (Sandbox Code Playgroud) 示例网址
http://www.youtube.com/user/Scobleizer#p/u/1/1p3vcRhsYGo
http://www.youtube.com/watch?v=cKZDdG9FTKY&feature=channel
http://www.youtube.com/watch?v=yZ-K7nCVnBI&playnext_from=TL&videos=osPknwzXEas&feature=sub
http://www.youtube.com/ytscreeningroom?v=NRHVzbJVx8I
Run Code Online (Sandbox Code Playgroud)
任何将从所有这4个用例中提取正确YID的正则表达式?第一种情况特别奇怪.
谢谢.