Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.08.2011, 08:03
Аспирант
Отправить личное сообщение для andreyua Посмотреть профиль Найти все сообщения от andreyua
 
Регистрация: 18.10.2009
Сообщений: 42

И опять о "string". Как изменить строку согласно параметров...
Есть строка: (будет разделена <BR>-ами в HTML, тут многострочная для наглядности):
"
[b][url=http://server1.com/file.txt.html]Скачать фaйл с сервера 1[/url][/b]

[b][url=http://server1.com/file2.txt.html]Скачать фaйл 2 с сервера 1[/url][/b]

[b][url=http://server3.com/file2.txt.html]Скачать фaйл 2 [url] [/url ]с сервера 2[/url][/b]

"

1. Нужно заменить все теги "url" на теги "leech", но только в правильных местах. (обратите внимание на 3-ю ссылку).
2. Нужно вставить ко всем ссылкам "server1.com" слово "_myserver.net".
Чтобы ссылки после этого выглядели так например:
Была такой
http://server1.com/file.txt.html
Стала такой
http://server1.com/file.txt_myserver.net.html

Помогите новичку плиз
Заменять URL на LEECH пытался вот этим , но это же не во всех случаях сработает
urllinks.replace(new RegExp("url",'g'),"leech")
Ответить с цитированием
  #2 (permalink)  
Старый 12.08.2011, 08:26
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

urllinks.replace(/(\[(:?\/)?)url([\]=])/ig, '$1leech$3').replace(/(http:\/\/server1\.com)([^\]]+)(\.html\])/ig, '$1$2_myserver.net$3');

Последний раз редактировалось devote, 12.08.2011 в 08:48.
Ответить с цитированием
  #3 (permalink)  
Старый 13.08.2011, 01:11
Аспирант
Отправить личное сообщение для andreyua Посмотреть профиль Найти все сообщения от andreyua
 
Регистрация: 18.10.2009
Сообщений: 42

Спасибо за помощь...
Но я тут внесу маленькую поправку, "_myserver.net" нужно ставить вот так:
http://server1.com/file_myserver.net.txt.html , тоесть перед "html" и любым расширением файла.. (txt, js, info, wav... неважно)
Прошу извинить за неточность
Ответить с цитированием
  #4 (permalink)  
Старый 13.08.2011, 03:10
Аспирант
Отправить личное сообщение для andreyua Посмотреть профиль Найти все сообщения от andreyua
 
Регистрация: 18.10.2009
Сообщений: 42

Хм... Засел в Expresso и додул сам вроде
Нужно изменить
\.html\]
на
\.[^\.]*\.html]

Правильно, поправьте пожалуйста ?
Ответить с цитированием
  #5 (permalink)  
Старый 13.08.2011, 06:02
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

и вообще в первом варианте я допустил ошибку, тоесть первый вариант может работать не совсем корректно вот новый:
urllinks.replace(/(\[(?:\/)?)url([\]=])/ig, '$1leech$2').replace(/(http:\/\/server1\.com)([^\]\.]+)((?:[^\s]+)?\.html\])/ig, '$1$2_myserver.net$3');
Ответить с цитированием
  #6 (permalink)  
Старый 13.08.2011, 08:23
Аспирант
Отправить личное сообщение для andreyua Посмотреть профиль Найти все сообщения от andreyua
 
Регистрация: 18.10.2009
Сообщений: 42

Ясно. С меня + снова...
А объясните пожалуйста в чем ошибка была, чтоб я тоже знал на будущее, а то щас вникаю в это все...
Ответить с цитированием
  #7 (permalink)  
Старый 13.08.2011, 08:29
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

urllinks.replace(/(\[(?:\/)?)url([\]=])/ig, '$1leech$2')
я попутал вместо "незапоминающей скобки" сделал обратное перепутав местами знак : и ? тоесть эта ошибка могла привести к тому что заменялось бы даже то что выглядит например вот так:
[:/url]
а это не приемлемо, а если хошь понять регулярку вот чтиво

Последний раз редактировалось devote, 13.08.2011 в 08:35.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как преобразовать строку с тегами в DOM элимент GOll Общие вопросы Javascript 7 07.04.2010 09:39
Как сформировать строку из массива di@mond Я не знаю javascript 9 11.06.2009 16:35
Как изменить скрипт, что бы им его можно было использовать для нужной страницы Nick50_70 Общие вопросы Javascript 0 28.04.2009 22:30
Как создать строку JSON с переменными? Артем AJAX и COMET 4 01.11.2008 11:12
Как сделать бегущую строку? Forgott Общие вопросы Javascript 12 12.05.2008 08:19