В JQuery я хочу проверить определенный URL с одного только YouTube и выставочное состояние успеха и другие, которых я хочу пропустить путем утверждения этого как не допустимый URL
var _videoUrl = "youtube.com/watch?v=FhnMNwiGg5M";
if (_videoUrl.contains("youtube.com"))
{
alert('Valid');
}
else
{
alert('Not Valid');
}
то, как свериться, содержит. или любая другая опция проверить один только допустимый URL YouTube.
Как правило, большинству людей нужен идентификатор видео YouTube. Чтобы просто сопоставить это, используйте следующее регулярное выражение.
var matches = _videoUrl.match(/watch\?v=([a-zA-Z0-9\-_]+)/);
if (matches)
{
alert('valid');
}
Естественно, регулярное выражение можно расширить, включив в него весь URL-адрес YouTube, но если вам нужен только идентификатор, это самый верный способ, который я нашел.
Предполагая, что вам нужен URL Youtube video, а не любой URL YouTube, вы можете сделать это с помощью regex:
var url = 'youtube.com/watch?v=FhnMNwiGg5M';
var matches = url.match(/^(https?:\/\/)?([^\/]*\.)?youtube\.com\/watch\?([^]*&)?v=\w+(&[^]*)?/i);
Я нашел это в библиотеке закрытия, может пригодиться:
/**
* 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;
Вы можете попробовать использовать регулярное выражение:
var url = 'youtube.com/watch?v=FhnMNwiGg5M';
var isyouTubeUrl = /((http|https):\/\/)?(www\.)?(youtube\.com)(\/)?([a-zA-Z0-9\-\.]+)\/?/.test(url);