Задать вопрос
cashloveyou
@cashloveyou
Хороший чел

Регулярка для Froala Editor?? Youtube?

Добрый день прошу помочь разобраться с url regex в Froala editor дело в том что при добавлении видео через ссылку примером
https://www.youtube.com/watch?v=LNflJMnnWKM
в редактор видео нормально отображается , но при публикации поста ссылка выглядет в виде //www.youtube и фрейм криво показывается
вот в этом коде чтото не так написала служба поддержка
{test_regex:/^.*((youtu.be)|(youtube.com))\/((v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))?\??v?=?([^#\&\?]*).*/,url_regex:/(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtube\.com|youtu\.be)\/(?:watch\?v=|embed\/)?([0-9a-zA-Z_\-]+)(.+)?/g,url_text:"//яwww.youtube.com/embed/$1",html:'<iframe width="640" height="360" src="{url}?wmode=opaque" frameborder="0" allowfullscreen></iframe>',provider:"youtube"}
  • Вопрос задан
  • 187 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Я не знаю что такое Froala Editor, но если хотите можете взять куски из этого монстра:
/**
* выдергивает videoId из url или embed
*
* @param string input
* @returns string youtube video id
*/
function youtubeGetID(input){
    var r = input.replace(/(>|<)/gi,'').split(/(vi\/|v=|\/v\/|youtu\.be\/|\/embed\/)/)
    if(r[2] !== undefined) {
        return r[2].split(/[^0-9a-z_\-]/i)[0]
    } else {
        r = input.match(/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/)|(?:(?:watch)?\?v(?:i)?=|\&v(?:i)?=))([^#\&\?]*).*/)
        if(r && r[1] !== undefined) {
            return r[1]
        }
        else return false
    }
}

Он конечно далеко не оптимальный, и некоторый части дублируются, но пару лет назад этот код успешно разобрал все примеры ссылок на ютуб, какие я смог найти.
Тесты здесь: jsfiddle.net/1j5do56g/1
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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