Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Помогите решить задачку (https://javascript.ru/forum/dom-window/8084-pomogite-reshit-zadachku.html)

valero 06.03.2010 22:57

Помогите решить задачку
 
Приветствую всех!
Помогите чайнику) вообщем у меня есть код ява скрипта

<script type="text/javascript">
function addSpoiler_video(str,from,internal){
    
    var pos=0,pos2=0,newpos=0
    if((pos=str.indexOf("[video]",from))==-1) return str;
    if((pos2=str.indexOf("[/video]"),pos+8)==-1) return str;
    newpos=str.indexOf("[video]",pos+8)
    if(newpos<pos2 && newpos!=-1) str=addSpoiler_video(str,pos+8,true)
    if((pos2=str.indexOf("[/video]",pos+8))==-1) return str;
    
    str=str.substring(0,pos)+makeSpoiler_video(str.substring(pos+7,pos2))+str.substring(pos2+8,str.length)
    if( str.indexOf("[video]")!=-1 && internal==false) str=addSpoiler_video(str,0,false)
    return str
}

function makeSpoiler_video(txt){
    txt='<object width="640" height="385"><param name="video" value="'+txt+'"/><param name="allowFullScreen" value="true"/><param name="scale" value="noscale"/><embed src="'+txt+'" type="application/x-shockwave-flash" width="640" height="385" allowFullScreen="true" scale="noscale"></embed></object>';
    return txt;
}

if(document.URL.indexOf("viewtopic.php")!=-1){
elm=document.getElementById("pun-main").getElementsByTagName("div")
for(x in elm) if(elm[x].className=="post-content"){
var post=elm[x]
post.innerHTML=addSpoiler_video(post.innerHTML,0,false)}}
</script>


Смысл таков, если мы кладем ссылку в виде
http://streaming.video.yandex.ru/lite/rublogers-ru/f9tw29xf6t.1008/

и закрываем тегами
[video]ссылка[/video]

Он автоматически подставляет ссылку в код плеера от того же яндекса.

А мне нужно чтоб он отсеивал вот от такой ссылки
[flash=450,338,http://streaming.video.yandex.ru/lite/rublogers-ru/f9tw29xf6t.1008/]

все ненужное, т.е начало
[flash=450,338,

и конец её
]


Тоесть чтоб не использовать
[video]ссылка[/video]

а как бы он будет убирать
[flash=450,338,

и
]

а саму ссылку подставлять

Кто знает как это сделать? заранее премного благодарен. :)

subzey 07.03.2010 03:44

Я немного не понял, что Вы хотите, но подозреваю, что Вам следует двигаться в решении Вашего вопроса в сторону регулярных выражений.

valero 07.03.2010 14:11

Хорошо, ладно с этим.

Подскажите функцию на Javascript чтоб находила и удалял вот это
[flash=450,336,

кстати цифры всегда меняются.

JAre 07.03.2010 14:37

http://javascript.ru/RegExp

valero 07.03.2010 14:43

JAre спасибо конечно, но этот копипаст я уже видел, сайтов 500 вчера облазил, и никто ответить толком не может. На деле показать нельзя?

JAre 07.03.2010 15:20

Я в них не селен но как-то так http://javascript.ru/paste/4b9399e6
Не совсем так :)

valero 07.03.2010 15:37

Цитата:

Сообщение от JAre (Сообщение 47054)
Не совсем так :)

Жаль :(

JAre 07.03.2010 15:45

Вот так http://javascript.ru/paste/4b939fc2

B@rmaley.e><e 07.03.2010 16:12

<grammar-nazi>
Цитата:

Сообщение от JAre
Я в них не селен

Среди нас селена нет.
</grammar-nazi>

Код:

(function(){
var str = '[flash=450,338,http://streaming.video.yandex.ru/lite/rublogers-ru/f9tw29xf6t.1008/] &\
 [flash=450,338,http://streaming.video.yandex.ru/lite/rublogers-ru/f9tw29xf6t.1008/] +\
 [flash=450,338,http://streaming.video.yandex.ru/lite/rublogers-ru/f9tw29xf6t.1008/]';
str = str.replace(/\[flash=\d+,\d+,([^\]]+)\]/ig, '$1');
alert(str)
})()


valero 07.03.2010 16:22

Всё получилось) спасибо всем! помогла строчка
str = str.replace(new RegExp("\[flash=[0-9]+\,[0-9]+\," ,'g'), "");

единственное что осталось убрать это вот это
p>

откуда лезет не понятно) ну это не проблема, попробую убрать при помощи той же строчки.


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