Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.10.2009, 01:16
Аватар для Verst
Новичок на форуме
Отправить личное сообщение для Verst Посмотреть профиль Найти все сообщения от Verst
 
Регистрация: 20.10.2009
Сообщений: 2

Текстовые ссылки в гиперссылки
Доброго времени суток.
Пишу скрипт для IE7Pro (аналог greasemonkey). Есть браузерная игра, в ней чат. Хочется что бы ссылки которые кидаются в чат, становились кликабельными. Весь код почти написал, но возникла проблема с регулярными выражениями, для обнаружения ссылок в тексте.

setInterval(ppp, 3000)
	var rr;
	function ppp(){
	var frames = window.frames;
	elm = frames[3].document.frames[0].document.getElementById("hint3");
	if(rr != elm.innerHTML){
	uuu = elm.outerHTML;
	elm.innerHTML=mmm(uuu);
	rr = elm.innerHTML;
	}
    }

    function mmm(text){
    	var s="";
    	var spl=text.split("<BR>");
	    for (var k=0; k<spl.length; k++){
	      var txt=spl[k];
	      	  s+=txt.replace(/(http\:\/\/имя_сайта.org)+(.*\s)$/g, '<a href="$1$2" target="_blank">$1$2</a>');
		      }
		      s+='<BR>';
	      }
	   return s;
    }

Скорее всего код кривой (только начинаю изучать JS), но он работает

И так суть проблемы: при отправке сообщения в чат в виде ссылки с добавлением в конец строки пробела, скрипт срабатывает и отображает ссылку в чате. Но если не поставить пробел в чат выводится ссылка с добавлением тега </span>. Собственно сам вопрос, как правильно составить регулярное выражение что бы не включался этот тег.

P.S. может кто сможет еще подсказать регулярное выражение, что бы в тексте находился не только конкретный сайт но любой другой, НО в чате есть смайлы и если в чат отправить ссылку на игру, то смайл отображаться перестанет из-за изменения адреса.

P.S.S Читал этот топик, но решения не смог найти и после двух дней поисков решил обратиться к спецам.

Спасибо за внимание.
Ответить с цитированием
  #2 (permalink)  
Старый 22.10.2009, 15:37
Аватар для Verst
Новичок на форуме
Отправить личное сообщение для Verst Посмотреть профиль Найти все сообщения от Verst
 
Регистрация: 20.10.2009
Сообщений: 2

ап
Ответить с цитированием
  #3 (permalink)  
Старый 22.10.2009, 15:57
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

RegExp.url = '(?:(?:https?|ftp)://)?(?:[0-9a-z][\\-0-9a-z]*[0-9a-z]\\.)+[a-z]{2,6}(?::\\d{1,5})?(?:/[?!$.():=\'+\\-;&~#@,%*\\wА-Яа-я]+)*/?';


'v-url': ['Требуется url адрес! Пример: www.mysite.ru', function(value) {
	return !value || (new RegExp('^' + RegExp.url + '$', 'i')).test(value);
}],
Ответить с цитированием
  #4 (permalink)  
Старый 22.10.2009, 19:43
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Riim,
Заинтересовался, порылся:
http://geekswithblogs.net/casualjim/.../01/61722.aspx
Ответить с цитированием
  #5 (permalink)  
Старый 22.10.2009, 21:02
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

До конца еще не досмотрел, но вроде интересный вариант.
Про ftps я что-то не подумал. Только вот разве можно сначала "~/" а потом "(?#Username:Password)(?:\w+:\w+@)?" ? Получится что такой url правильный: ~/name:wpass@domen.ru/ . И он же: http://subdomen.name:wpass@domen.ru/ .

Последний раз редактировалось Riim, 23.10.2009 в 16:49.
Ответить с цитированием
  #6 (permalink)  
Старый 23.10.2009, 15:11
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

А первый неправильный? Просто я как-то не сталкивался с такой авторизацией
Ответить с цитированием
  #7 (permalink)  
Старый 23.10.2009, 16:51
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от e1f
Просто я как-то не сталкивался с такой авторизацией
на ftp к хостингу обычно так.

Сообщение от e1f
А первый неправильный?
не знаю, но выглядит не очень.
Ответить с цитированием
  #8 (permalink)  
Старый 23.10.2009, 17:18
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

я бы отталкивался от rfc, так как там есть BNF, и, кроме того, регулярное выражение для парсинга URI
Ответить с цитированием
  #9 (permalink)  
Старый 23.10.2009, 18:54
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

x-yuri, спасибо, почитаю как-нибудь на досуге.
Ответить с цитированием
  #10 (permalink)  
Старый 26.10.2009, 01:04
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

на самом деле я могу быть не прав, я просто увидел, что они указали фиксированный список доменов верхнего уровня
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
overflow:auto и #-ссылки vania-pooh (X)HTML/CSS 3 02.01.2011 21:16
ссылки вида ?test, #test MadeMan Общие вопросы Javascript 8 25.06.2009 20:24
при создании ссылки не работает thickbox czar jQuery 3 13.04.2009 14:25
Перенос текста ссылки по строкам greatilya Элементы интерфейса 5 13.03.2009 13:07
Не подскажите, как убрать подчеркивание ссылки href? Forgott Общие вопросы Javascript 1 20.05.2008 11:47