конвертировать ссылки на YouTube в код для вставки jwplayer - PullRequest
1 голос
/ 13 июня 2011

У меня есть чат, и когда человек отправляет ссылку на YouTube, я хотел бы немедленно преобразовать его в воспроизводимое видео.

Поэтому, когда пользователь отправляет ссылку в следующих форматах

http://www.youtube.com/watch?v=kLORyXO8mVc

http://www.youtube.com/watch?v=kLORyXO8mVc&feature=related

Будет преобразована ссылка на этот код

<div id='mediaspace'>Youtube</div>
<script type='text/javascript'>
  jwplayer('mediaspace').setup({
    'flashplayer': 'player.swf',
    'file': 'XXXXXX-YOUTUBE-VIDEO-URL-GOES-HERE-XXXXXX',
    'controlbar': 'bottom',
    'width': '350',
    'height': '230'
  });
</script>

Также можно взять ссылку на YouTube только в этом формате http://www.youtube.com/watch?v=kLORyXO8mVcи любые ссылки, которые отправляет пользователь с прикрепленным к нему &feature или более, будут удалены только со стандартным URL, подобным этому http://www.youtube.com/watch?v=kLORyXO8mVc

, вот что я придумал, но он не работает:

$().ready(function() {
    var regEx = /http://(www\.)?youtube\.com/watch\?.*v=([a-zA-Z0-9]+)/;


    $("body").filter(function() {
        return $(this).html().match(regEx);
    }).each(function() {
        $(this).html($(this).html().replace(regEx, '
        <div id='mediaspace'>Youtube</div>
        <script type='text/javascript'>
          jwplayer('mediaspace').setup({
            'flashplayer': 'player.swf',
            'file': '$1',
            'controlbar': 'bottom',
            'width': '350',
            'height': '230'
          });
        </script>
        '));
    });
});

1 Ответ

1 голос
/ 13 июня 2011

В вашем коде не было экранирования в регулярном выражении (вы не можете использовать / внутри / без экранирования) или в замещающей строке (вы не можете использовать «внутри» без экранирования). Попробуйте это:

var regEx = /http:\/\/(www\.)?youtube\.com\/watch\?.*v=([a-zA-Z0-9]+)/;

$("body").filter(function() {
    return $(this).html().match(regEx);
}).each(function() {
    $(this).html($(this).html().replace(regEx, "<div id='mediaspace'>Youtube</div><script type='text/javascript'>jwplayer('mediaspace').setup({'flashplayer': 'player.swf','file': '$1','controlbar': 'bottom','width': '350','height': '230'});</scr"+"ipt>"));
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...