|
регулярки: замена ссылки на ютуб
Гулял по форуму в поисках примеров регулярных выражений и наткнулся на один пост от maxmaxmaximus-а (выкинул из его поста всё лишнее оставил саму задачу)
Цитата:
<div id="text" style="height: 50px"> </div> <script> var str = "http://youtube.com бла-бла-бла youtu.be/wUQfvbBRnZs бла-бла-бла http://www.youtube.com/watch?v=wUQfvbBRnZs http://youtu.be" ; var poisk = /((?:http:\/\/)?(?:www\.)?youtube\.com\/watch\?v=(?=[-_0-9a-z]{11}))|((?:http:\/\/)?(?:www\.)?youtu\.be\/(?=[-_0-9a-z]{11}))/ig ; var pat = str.replace(poisk, '') ; window.onload = function() { document.getElementById('text').innerHTML = pat ; } ; </script> Не 'коряво' я это реализовал? Можно это сделать короче или нет |
Во-первых, в регулярке вы забыли закрыть скобку, во-вторых, флаг "m" там не нужен. Вместо (?=[%0-9a-z]+\b) можно просто (?=[%0-9a-z]), что не равносильно, но, мне кажется, то что вы хотели.
|
oneguy,
я уже сам увидел и исправил =) или где-то еще забыл? m - да пох на него)) а если сделать как вы написали, то там будет смотреть только один знак после youtube.com/, а я сделал наверняка, чтоб просматривал все, но в принципе, канеш, можно и так =) |
Цитата:
|
oneguy, ну в принципе да :)
|
Дзен-трансгуманист, спасибо, поправлю код =) но у меня, когда я вбил в гугле 'видео ютуб', были именно те 2 ссылки...без 'watch' и идентификатор не из 11символов почему-то...хотя, может, это и не идентификатор
__________ Всё исправил, теперь норм? __________ И если всё правильно, поставьте мне какую-нить задачку с регулярками, если вам не сложно =) |
кто-нибудь может дать какую-нить задачку с регулярками или ссылку, где задачу(-и) можно посмотреть, но не слишком сложную, еси можна
|
Hekumok,
А приведите пару-тройку входных строк и пару выходных для них же ? Чот пока слабо вкурил |
Deff,
<div id="text" style="height: 50px"> </div> <script> var str = "новый видос погляди : \n\n полный вид ссылки : http://www.youtube.com/watch?v=y-Q49kLd7EA \n без протокола : www.youtube.com/watch?v=y-Q49kLd7EA \n без www : youtube.com/watch?v=y-Q49kLd7EA \n с двумя слешами : //youtube.com/watch?v=y-Q49kLd7EA \n параметр ИД не первый : youtube.com/watch?feature=relmfu&v=y-Q49kLd7EA \n короткий вид ссылки : youtu.be/y-Q49kLd7EA \n ссылки с мусором : youtube.com/watch?v=y-Q49kLd7EA&feauture=youtu.be \n youtube.com/watch?v=y-Q49kLd7EA#t=5s \n ссылка с верхним регистром : YOUTUBE.COM/WATCH?V=Y-Q49KLD7EA" ; var poisk = /(?:(?:http:)?(?:\/\/)?(?:www\.)?youtube\.com\/watch\?\S*?v=([-_0-9a-z]{11})\S*)|(?:(?:http:)?(?:\/\/)?(?:www\.)?youtu\.be\/\S*?([-_0-9a-z]{11})\S*)/ig ; var pat = str.replace(poisk, function(а, b, c) {return (b||c)}) ; window.onload = function() { document.getElementById('text').innerHTML = pat ; } ; </script> ещё? :) |
Hekumok,
Ясн! |
Часовой пояс GMT +3, время: 11:56. |
|