如何使用jquery检查有效的Youtubeurl

在Jquery中我想单独检查来自youtube的特定url并显示成功状态以及我想跳过的其他url,将其声明为无效url

var _videoUrl = "youtube.com/watch?v=FhnMNwiGg5M"; if (_videoUrl.contains("youtube.com")) { alert('Valid'); } else { alert('Not Valid'); } 

如何检查包含。 或任何其他选项单独检查有效的youtubeurl。

通常,大多数人想要的是youtubevideoID。 要简单地匹配它,请使用以下正则表达式。

 var matches = _videoUrl.match(/watch\?v=([a-zA-Z0-9\-_]+)/); if (matches) { alert('valid'); } 

当然,正则表达式可以扩展为包含整个youtubeurl,但如果你需要的只是ID,这是我发现的最可靠的方法。

我从闭包库中找到了这个,可能很方便:

 /** * A youtube regular expression matcher. It matches the VIDEOID of URLs like * http://www.youtube.com/watch?v=VIDEOID. * @type {RegExp} * @private */ goog.ui.media.YoutubeModel.matcher_ = /https?:\/\/(?:[a-zA_Z]{2,3}.)?(?:youtube\.com\/watch\?)((?:[\w\d\-\_\=]+&(?:amp;)?)*v(?:<[AZ]+>)?=([0-9a-zA-Z\-\_]+))/i; 

您可以尝试使用正则表达式:

 var url = 'youtube.com/watch?v=FhnMNwiGg5M'; var isyouTubeUrl = /((http|https):\/\/)?(www\.)?(youtube\.com)(\/)?([a-zA-Z0-9\-\.]+)\/?/.test(url); 

我会多给一些:

对于YoutubeVimeo来说 ,检查这些ID实际上是不是真的

 var GoogleKey = 'XXXXXXXXXX'; function GetVideoById(id) { var site = !isNaN(id) ? 'vimeo' : 'youtube'; var data = false; if(site==='youtube') { $.ajax({ async: false, url: 'https://www.googleapis.com/youtube/v3/videos?id='+id+'&key='+GoogleKey+'&part=snippet', success: function(r) { if(r['items'].length) { data = {'type':'youtube','data':r['items'][0]['snippet']}; } } }); } else { $.ajax({ async: false, url: 'http://vimeo.com/api/v2/video/'+id+'.json', success: function(r) { data = {'type':'vimeo','data':r[0]}; } }); } return data; } 

所以示例运行:

 if(GetVideoById('YykjpeuMNEk')) { // youtube + data } if(GetVideoById('162334918')) { // vimeo + data } if(GetVideoById('999999')) { // nothing (because false) } if(GetVideoById('abcdefg')) { // nothing (because false) } 

假设您想要一个Youtube videourl而不是任何YouTubeurl,您可以使用正则表达式执行此操作:

 var url = 'youtube.com/watch?v=FhnMNwiGg5M'; var matches = url.match(/^(https?:\/\/)?([^\/]*\.)?youtube\.com\/watch\?([^]*&)?v=\w+(&[^]*)?/i); 

您可以使用.indexOf()检查url是否包含“ http://www.youtube.com.indexOf()

 var url = 'http://www.youtube.com/channel/UChh-akEbUM8_6ghGVnJd6cQ'; if (url.indexOf('http://www.youtube.com') > -1) { alert( "true"); } else { alert( "false"); } 
 you Want to validate your URL: Please pass the URL in this function then this will give you true OR false See Function :  
 var regexp = /^(?:https?:\/\/)?(?:www\.)?youtube\.com\/watch\?(?=.*v=((\w|-){11}))(?:\S+)?$/; var matches_array = video_url.match(regexp); if(matches_array == null) { alert("Enter youtube url"); return false; }