我需要从youtube视频网址获取ID。我正在使用split方法但在控制台中它会出现以下错误
未捕获的TypeError:无法读取属性' split'未定义的
我的视频网址是:
https://www.youtube.com/embed/juIJGBxj-4w
id = url.split('/')[1].split('embed')[1];
答案 0 :(得分:3)
正则表达式将从任何YouTube网址中提取视频ID 它适用于缩短的URL(youtu.be)和嵌入的URL (youtube.com/embed/)。
function extractVideoID(url){
var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/;
var match = url.match(regExp);
if ( match && match[7].length == 11 ){
return match[7];
}else{
alert("Could not extract video ID.");
}
}
答案 1 :(得分:0)
forExample youtube url为“https://www.youtube.com/watch?v=abcdefghij”
我将使用以下代码将其拆分
id = url.split('?')[1].split('=')[1];
答案 2 :(得分:0)
的
的url = "https://www.youtube.com/embed/juIJGBxj-4w"
id = url.split('/');
var indexOfEmbed = id.indexOf("juIJGBxj-4w");
id[indexOfEmbed]
的
<强>输出:强>
&#34; juIJGBxj-4W&#34;
此解决方案适用于使用正则表达式的所有网址:
的
的var regExp = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/;
var match = url.match(regExp);
if (match && match[2].length == 11) {
return match[2]; // use console.log if your run code in browser console
} else {
//error
}
的
此解决方案适用于没有正则表达式的所有网址:
对于此类网址 的 的
的http://www.youtube.com/watch?v=u8nQa1cJyX8&a=GxdCwVVULXctT2lYDEPllDR0LRTutYfW
http://www.youtube.com/watch?v=u8nQa1cJyX8
的
的
的 var url ="http://www.youtube.com/watch?v=u8nQa1cJyX8&a=GxdCwVVULXctT2lYDEPllDR0LRTutYfW"
var video_id = window.location.search.split('v=')[1];// use url insted of window.location.search
Or
var video_id = url.split('v=')[1];
var ampersandPosition = video_id.indexOf('&');
if(ampersandPosition != -1) {
video_id = video_id.substring(0, ampersandPosition);
}
的
答案 3 :(得分:0)
这个问题比看起来更复杂,因为www.youtube.com/watch?v=.....
所有Youtube网址都不会轻易开始。有些网站的模式有www.youtu.be/...
或youtube.com/embed/...
。
这是我使用的解析器,到目前为止,它每次都适用于任何Youtube网址:
videoId = url.match(/(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/ ]{11})/i)[0]
答案 4 :(得分:0)
假设id
总是到底。
function getId(url){
var splitedValue = url.split("/");
return splitedValue[splitedValue.length-1];
}
getId("https://www.youtube.com/embed/juIJGBxj-4w");
Output: juIJGBxj-4w