Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Фильтр url You Tube (https://javascript.ru/forum/misc/60310-filtr-url-you-tube.html)

itsmynickname 22.12.2015 11:21

Фильтр url You Tube
 
Всем привет!

Прошу вашей помощи ребята. Я нарыл один скрипт в сети, скрипт мне очень подходит. Но к сожалению он при неправильном обращении с ним, даёт очень не хорошие последствия.

(function() {
    tinymce.create('tinymce.plugins.youtube', {
        init : function(ed, url) {
            ed.addButton('youtube', {
                title : 'YouTube',
                image : url+'/youtube.png',
                onclick : function() {
                    idPattern = /(?:(?:[^v]+)+v.)?([^&=]{11})(?=&|$)/;
                    var vidId = prompt("YouTube Video", "Enter the id or url for your video");
                    var m = idPattern.exec(vidId);
                    if (m != null && m != 'undefined')
                        ed.execCommand('mceInsertContent', false, '[youtube id='+m[1]+']');
                }
            });
        },
        createControl : function(n, cm) {
            return null;
        },

        }
    });
    tinymce.PluginManager.add('youtube', tinymce.plugins.youtube);
})();


Вообщем скрипт фильтрует юрл ютуба, убирает все символы и оставляет только последний код. Но проблема в том что работает он нормально только если вставить юрл из браузерной строки. А если вставить юрл из места "поделится" (https://youtu.be/юрл) или какой либо другой юрл, то страница намертво виснет. Браузер вообще не отвечает.

Я понимаю что для людей знающих что-то там подправить это секундное дело. Но дляменя эта задача совсем не выполнима.

Подскажите мне пожалуйта как бы так сделать чтоб он выдавал сообщение если юрл не правильный и не зависал.

Заранее спасибо!

ruslan_mart 22.12.2015 17:31

/^https?:\/\/(?:www\.)?(?:(?:youtube\.com\/?\?v=)|(?:youtu\.be\/))([\w-]+)/i

itsmynickname 22.12.2015 18:12

Цитата:

Сообщение от Ruslan_xDD (Сообщение 400918)
/^https?:\/\/(?:www\.)?(?:(?:youtube\.com\/?\?v=)|(?:youtu\.be\/))([\w-]+)/i

Спасибо большое! К сожалению не проходит url с браузерной строки, просто ничего не происходит, а коротенький с "поделится" (https://youtu.be/юрл). Отфильтровует классно.
Ну теперь хоть не зависает.

ruslan_mart 22.12.2015 18:17

/^(?:https?:\/\/)?(?:www\.)?(?:(?:youtube\.com\/watch\/?\?v=)|(?:youtu\.be\/))([\w-]+)/i


Теперь должно. :)

itsmynickname 22.12.2015 18:23

Цитата:

Сообщение от Ruslan_xDD (Сообщение 400927)
/^(?:https?:\/\/)?(?:www\.)?(?:(?:youtube\.com\/watch\/?\?v=)|(?:youtu\.be\/))([\w-]+)/i


Теперь должно. :)


Да! Ура! Всё теперь отлично работает! Огромнейшие при огромнейшие спасибо !!! :)


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