Как проверить действительный URL Youtube с помощью jquery

В JQuery я хочу проверить конкретный URL-адрес только с youtube и показать статус успеха, а другие, которые я хочу пропустить, указав его как недействительный url

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

как проверить с содержит. или любой другой способ проверить действительный URL-адрес YouTube.

Ответ 1

Как правило, то, что требуется большинству людей, - это идентификатор видео youtube. Чтобы просто сопоставить это, используйте следующее регулярное выражение.

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

Естественно, что регулярное выражение может быть расширено, чтобы включить весь URL-адрес YouTube, но если все, что вам нужно, это идентификатор, это самый верный способ, который я нашел.

Ответ 2

Я нашел это из библиотеки закрытия, может быть удобно:

/**
 * 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(?:<[A-Z]+>)?=([0-9a-zA-Z\-\_]+))/i;

Ответ 3

Вы можете попробовать использовать регулярное выражение:

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

Ответ 4

Я дам несколько дополнительных:

Как для Youtube, так и Vimeo для проверки того, что эти ID действительно vaild или нет

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)
}

Ответ 5

Предполагая, что вам нужен URL-адрес Youtube видео, а не любой URL-адрес YouTube, вы можете сделать это с помощью регулярного выражения:

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

Ответ 6

Вы можете проверить, содержит ли 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");
}

Ответ 7

you Want to validate your URL:

Please pass the URL in this function then this will give you true OR false
See Function :
<script>
function isValidUrl(s) {
    var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
    return regexp.test(s);
}

isValidUrl(yourURL);
</script>

Ответ 8

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;

}