Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Регулярка для YouTube (https://javascript.ru/forum/dom-window/58040-regulyarka-dlya-youtube.html)

juramaj 01.09.2015 18:09

Регулярка для YouTube
 
Доброго времени суток всем! Хочу спросить у знатоков. Как можно сделать проверку на iframe для YouTube. Может как то через регулярку? Вот пример того iframe который нужно проверить.
<iframe width="560" height="315" src="https://www.youtube.com/embed/здесь код видео" frameborder="0" allowfullscreen></iframe>
Может есть какой то готовый пример? Подскажите пожалуйста. Спасибо.

forwardonly2015 01.09.2015 19:16

Возможно вот этого достаточно будет
alert(
 (
   '<iframe width="560" height="315" src="https://www.youtube.com/embed/11111" frameborder="0" allowfullscreen></iframe>'
   +'FOO'
   +'<iframe width="560" height="315" src="https://www.youtube.com/embed/11111" frameborder="0" allowfullscreen></iframe>'
   +'FOO'
   +'<iframe width="560" height="315" src="https://www.youtube.com/embed/11111" frameborder="0" allowfullscreen></iframe>'
   +'FOO'
   +'<iframe width="560" height="315" src="https://www.youtube.com/embed/11111" frameborder="0" allowfullscreen></iframe>'
   +'FOO'
 )

.match(/<iframe [\s\S]+?https:\/\/www\.youtube.com\/[\s\S]+?\/iframe>/ig)

)


//[ '<iframe width="560" height="315" src="https://www.youtube.com/embed/11111" frameborder="0" allowfullscreen></iframe>',
//  '<iframe width="560" height="315" src="https://www.youtube.com/embed/11111" frameborder="0" allowfullscreen></iframe>',
//  '<iframe width="560" height="315" src="https://www.youtube.com/embed/11111" frameborder="0" allowfullscreen></iframe>',
//  '<iframe width="560" height="315" src="https://www.youtube.com/embed/11111" frameborder="0" allowfullscreen></iframe>' ]

forwardonly2015 01.09.2015 19:28

Если нужна просто проверка
re=/<iframe [\s\S]+?https:\/\/www.youtube\.com\/[\s\S]+?\/iframe>/i
alert([

 re.test(
   '<iframe width="560" height="315" src="https://www.youtube.com/embed/11111" frameborder="0" allowfullscreen></iframe>'
   +'FOO'
   +'<iframe width="560" height="315" src="https://www.youtube.com/embed/11111" frameborder="0" allowfullscreen></iframe>'
   +'FOO'
   +'<iframe width="560" height="315" src="https://www.youtube.com/embed/11111" frameborder="0" allowfullscreen></iframe>'
   +'FOO'
   +'<iframe width="560" height="315" src="https://www.youtube.com/embed/11111" frameborder="0" allowfullscreen></iframe>'
   +'FOO'
 ),
 re.test("foo")

])

//[true, false]

juramaj 01.09.2015 20:17

Спасибо, получилось.

Sigizmund2012 01.09.2015 20:53

<iframe width="420" height="315" src="https://www.youtube.com/embed/A3TUXGI_iuM" frameborder="0" allowfullscreen></iframe>

<script>

var frame = document.querySelector('iframe');
var url = frame.src;
if (url.match(/youtube.com/)) {
    alert('It\'s Youtube!');
}

</script>

forwardonly2015 01.09.2015 21:16

Sigizmund2012,
Используй querySelectorAll, иначе не сработает, если первым в документе окажется другой айфрейм

Sigizmund2012 02.09.2015 09:08

Цитата:

Сообщение от forwardonly2015 (Сообщение 386878)
Sigizmund2012,
Используй querySelectorAll, иначе не сработает, если первым в документе окажется другой айфрейм

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


Часовой пояс GMT +3, время: 00:08.