Как проверить действительный 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;
}