Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.04;
Скачать: CL | DM;

Вниз

Знатокам JavaScript   Найти похожие ветки 

 
Piter ©   (2005-10-31 18:48) [0]

Требуется написать программку распарсивания строчки-ссылки.

Итак, имеется magnet ссылка, что-то вроде:

magnet:?xt=urn:tree:tiger:X57J2GGL6QNSOAGFBPNYMTNLP633XB2VOHFADLA&xl=367300608&dn=kino.avi

Гле "magnet:?xt=urn:tree:tiger:" - постоянная вещь
   "X57J2GGL6QNSOAGFBPNYMTNLP633XB2VOHFADLA" - хеш
   "&xl=367300608" - это размер файла в байтах
   "&dn=kino.avi" - имя файла

Нужно написать на JavaScript программку, которая из окошка ввода берет данную ссылку и вот что делает:

1) вычлиняет имя файла  (kino.avi)
2) вычлиняет количество байт (367300608)

Заранее спасибо!


 
Algol   (2005-10-31 19:08) [1]

А что, в javascript регекс не такой как везде?

MSDN:
The following example illustrates the use of the global RegExp object.

function matchDemo(){
  var s;
  var re = new RegExp("d(b+)(d)","ig");
  var str = "cdbBdbsbdbdz";
  var arr = re.exec(str);
  s = "$1 contains: " + RegExp.$1 + "\n";
  s += "$2 contains: " + RegExp.$2 + "\n";
  s += "$3 contains: " + RegExp.$3;
  return(s);
}


 
Piter ©   (2005-10-31 19:22) [2]

а, ну и еще делательно, чтобы JS код на все браузерах отрабатывал...


 
Piter ©   (2005-11-09 20:13) [3]

Удалено модератором
Примечание: Создание пустых сообщений


 
Gero ©   (2005-11-09 20:18) [4]

И что у тебя получилось?


 
Kerk ©   (2005-11-09 20:20) [5]

substring, indexOf + F1


 
Piter ©   (2005-11-13 23:57) [6]

Kerk ©   (09.11.05 20:20) [5]
+ F1


а F1 где жать? Прямо в блокноте? :)))


 
Kerk ©   (2005-11-14 00:01) [7]

Piter ©   (13.11.05 23:57) [6]
а F1 где жать? Прямо в блокноте? :)))


:))) Попробуй :))
В MSDN наверно :)
Я просто давным давно реализовывал немножко похожую штуку.

Кусок кода вместо справки. По смыслу функции поймешь :)

   if (addr != "0.0.0") {
     var cur_gateway = new String(Rs("GATEWAY"));
     var cur_str=new String(cur_gateway);

     pos=cur_str.indexOf(",");

     exists = false;
     while (pos!=-1)  {
       temp = cur_str.substring(0,pos);
       cur_str = cur_str.substring(pos+1,cur_str.length);
       pos=cur_str.indexOf(",");
       if (temp==addr) {
         exists=true;
         break;
       }
     }

Хз. Может пригодится :)


 
разводящий   (2005-11-14 00:27) [8]

http://program.rin.ru/razdel/html/118-3.html


 
Piter ©   (2005-11-14 03:26) [9]

Algol   (31.10.05 19:08) [1]

странно, есть вопрос по RegExp:

Почему так вот не работает:

var re = new RegExp("^([0-9]+)=dn=(\S+)$");
 var str = "34444=dn=kino.avi";
 var arr = re.exec(str);


А вот так работает:

var re = new RegExp("^([0-9]+)=dn=(.+)$");
 var str = "34444=dn=kino.avi";
 var arr = re.exec(str);


Мне надо из строки:

34444=dn=kino.avi

извлечь:

34444 и kino.avi


 
Piter ©   (2005-11-14 13:53) [10]

Нарооод?


 
разводящий   (2005-11-14 14:53) [11]

Здесь находится библиотека TRegExpr к Delphi и с ней демка, с помощью которой можно тестировать регулярные выражения. Регулярные выражения полностью соответствуют принятым в Perl, а значит и JavaScript.

http://regexpstudio.com/



Страницы: 1 вся ветка

Текущий архив: 2005.12.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.094 c
1-1130227894
CRep
2005-10-25 12:11
2005.12.04
Delphi, Crystal Reports Print Engine (crpe32.dll)


14-1131617779
Jeer
2005-11-10 13:16
2005.12.04
Правительство Эстонии оплатит расходы на установку памятника эсэс


14-1131908927
Виталий11111
2005-11-13 22:08
2005.12.04
Модератор пидар!!!


8-1120591323
zsergey
2005-07-05 23:22
2005.12.04
Как анимированный Gif вставить в канву?


14-1132138627
Жук
2005-11-16 13:57
2005.12.04
Оптоволоконная линия