как проверить допустимый 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.

10
задан Max Shawabkeh 13 February 2010 в 08:23
поделиться

4 ответа

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

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

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

7
ответ дан 3 December 2019 в 18:33
поделиться

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

var url = 'youtube.com/watch?v=FhnMNwiGg5M';
var matches = url.match(/^(https?:\/\/)?([^\/]*\.)?youtube\.com\/watch\?([^]*&)?v=\w+(&[^]*)?/i);
0
ответ дан 3 December 2019 в 18:33
поделиться

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

/**
 * 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;
11
ответ дан 3 December 2019 в 18:33
поделиться

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

var url = 'youtube.com/watch?v=FhnMNwiGg5M';
var isyouTubeUrl = /((http|https):\/\/)?(www\.)?(youtube\.com)(\/)?([a-zA-Z0-9\-\.]+)\/?/.test(url);
2
ответ дан 3 December 2019 в 18:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: