Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   регулярки: замена ссылки на ютуб (https://javascript.ru/forum/misc/30183-regulyarki-zamena-ssylki-na-yutub.html)

Hekumok 27.07.2012 21:36

Deff, ну и?

Hekumok 27.07.2012 23:02

кто-нибудь подкиньте задачку с регулярками

Deff 28.07.2012 01:32

<script type="text/javascript">
var str = [];
str[0] = "Вот просто ссылка на ютуб http://youtube.com - она так и останется, и эта тоже - youtu.be/" ;
str[1] = "A от этой останется только айдишник - http://youtu.be/wUQfvbBRnZs" ;
str[2] = "И от этой тоже - www.youtube.com/watch?v=wUQfvbBRnZs" ;

function ReturnYoutubId(str) {

    var Mass ="http://youtu.be/,www.youtube.com/watch?v=";

    Mass = Mass.split(",");//alert(Mass);

    var Out = "";

    for(var i=0; i<Mass.length; i++){

        var reg =  new RegExp(".*?"+Mass[i].replace(/\?/ig,'\\?')+"(\\S*?\\S(?=\\s|$))","ig");

        var st2 = str.replace(reg,',$1');

        if(st2!= str){Out+=st2;str=str.replace(st2,'');}

    } return Out.substring(1).split(",");;
}
for(var i=0; i<str.length; i++){
  alert(ReturnYoutubId(str[i]))
}
</script>

devote 28.07.2012 01:50

var a = [
    "Вот просто ссылка на ютуб [url]http://youtube.com[/url] - она так и останется, и эта тоже - youtu.be/",
    "A от этой останется только айдишник - http://youtube.ru/wUQfvbBRnZs",
    "И от этой тоже - www.youtube.com/watch?v=qwUQfvbBRnZs"
];

for( var i = 0; i < a.length; i++ ) {
    alert( a[i].replace( /(?:(?:https?:\/\/)?.*?\.(?:ru|com)\/(?:watch\?v=)?([\w]*)|(.*))/gi, "$1" ) );
}

devote 28.07.2012 02:01

var a = [
    "Вот просто ссылка на ютуб http://youtube.com - она так и останется, и эта тоже - youtu.be/",
    "A от этой останется только айдишник - http://youtube.ru/wUQfvbBRnZs hsdfhjg https://youtube.ru/wUQfvbBRnZs",
    "И от этой тоже - www.youtube.com/watch?v=qwUQfvbBRnZs И от этой тоже - www.youtube.com/watch?v=qwUQfvbBRnZs"
];

for( var i = 0; i < a.length; i++ ) {
    alert( a[i].replace( /(?:https?:\/\/)?[^\s]+\.(?:ru|com|be)\/(?:watch\?v=)?([\w]+)/gi, "$1" ) );
}

devote 28.07.2012 02:05

как меня раздражает эта система автоматического проставления тега [url] в сылках указанных в тегах [js]

Deff 28.07.2012 02:15

:write: Работает!

Hekumok 28.07.2012 03:24

Дзен-трансгуманист, сделано :)
Deff, у вас код ведь длиннее моего, а чем он лучше - я так и не въехал... P.S. Тормоз я, наверно...
devote, а зачем в обоих ваших кодах (в конце кодов) \w заключать в квадратные скобки, и без них же работает вроде, не?

Deff 28.07.2012 03:29

Hekumok,
:) А у меня ссылки мон менять и не на ютуб , просто в массиве иные или дополнить/уточнить новыми вариантами
А у devote зато может парсить несколько ссылок в одной строке

Hekumok 28.07.2012 09:17

Deff, a понятно...но у мну же, как и у devote, может несколько ссылок в одной строке парсить - см. пост 10


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