Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #71 (permalink)  
Старый 04.12.2011, 23:11
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Вот начирикал последний вариант, удаляет знаки препинания и вские там символы в конце ссылки...
var a = [
    'Привет, на вот зацени ссылку: "http://test.ru/blablablah.html?test=param&qwerty#anchor." это крутая ссыль =) и вот еще www.google.ru, www.tarampampam.com!!! и вот еще файлик на ФТП ftp://tarampampam.ru/file.zip.',

    'http://translate.google.ru/?js=n&prev=_t&hl=ru&ie=UTF-8&layout=2&eotf=1&sl=en&tl=ru&text=Possibly+another+solution+would+be+to+have+the+description+text+hidden+by+default+and+only+shows+when+the+title+is+focused%2Fhovered+over.%0D%0A%0D%0A+Here%27s+an+example%3A+http%3A%2F%2Fwww.1true.co.uk%2Ffastscroll.html&file=#en|ru|blah',

    'http://президент.рф/документы',

    '"http://testdomen/blabla/" - не заматчило - это by design?',

    'Крутая:http://javascript.ru/forum/project/23691-poisk-ssylok-na-stranice-5.html-ссылка',

    'http://дердымцопцоп,.ru/',

    'http://votrube.ru/uploads/posts/2011-12/1322827006_-(www.votrube.ru)2.jpg',

    'http://yandex.ru-хорошая ссылка'
];

for( var b, i = 0; i < a.length; i++ ) {
b = a[i].match( /(?:(http(?:s)?|ftp)(:\/\/)|(www(?:[0-9]+)?\.))((?:([^`~!@#$%^&*()_+|=\\{}\[\];:'"<,>?\/\s]+)\/[^\s]+(?!\s|$)[^`~!@#$%^&*()_+|=\\{}\[\];:'"<,.>\-?\s]+)|([^`~!@#$%^&*()_+|=\\{}\[\];:'"<,>?\/\s]+))/ig );

alert(b);
}

Последний раз редактировалось devote, 04.12.2011 в 23:49. Причина: Собрал все тестовые ссылки по топику
Ответить с цитированием
  #72 (permalink)  
Старый 04.12.2011, 23:19
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Ну хоть такая рега покатит вам? Щас она убивает знаки препинания не нужные в конце ссыли. И реверсов не надо делать.
Ответить с цитированием
  #73 (permalink)  
Старый 04.12.2011, 23:57
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

хотя есть ссылки содержащие имя пользователя и пароль в ссылке, для этого можно убрать из запрещенных два символа ":@" тоесть двоеточие и сабаку.

примерно так:
var a = '"ftp://username:password@domen.net/path/path/file.dat"'.
match( /(?:(http(?:s)?|ftp)(:\/\/)|(www(?:[0-9]+)?\.))((?:([^`~!#$%^&*()_+|=\\{}\[\];'"<,>?\/\s]+)\/[^\s]+(?!\s|$)[^`~!@#$%^&*()_+|=\\{}\[\];:'"<,.>\-?\s]+)|([^`~!#$%^&*()_+|=\\{}\[\];'"<,>?\/\s]+))/ig );
alert(a);
Ответить с цитированием
  #74 (permalink)  
Старый 05.12.2011, 00:01
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

devote,
Всё хорошо, за исключением того, что это http://дердымцопцоп она найти не должна была. Спасибо за участие. Твоей регой можно будет прогонять ссылку как дополнительным фильтром, без реверса. Хотя возможно это не потребуется, если немного изменить первую часть.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 05.12.2011 в 00:07.
Ответить с цитированием
  #75 (permalink)  
Старый 05.12.2011, 00:14
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Gozar,
Хоть покажешь полный результат? Когда закончишь делать полноценный фильтр ссылок. А насчет то ссыли, можно добавить что бы он не хватал локальные ссылки, тоесть без домена первого уровня. Это примерно так:

var a = [ 
    'Привет, на вот зацени ссылку: "http://test.ru/blablablah.html?test=param&qwerty#anchor." это крутая ссыль =) и вот еще www.google.ru, www.tarampampam.com!!! и вот еще файлик на ФТП ftp://tarampampam.ru/file.zip.', 
  
    'http://translate.google.ru/?js=n&prev=_t&hl=ru&ie=UTF-8&layout=2&eotf=1&sl=en&tl=ru&text=Possibly+another+solution+would+be+to+have+the+description+text+hidden+by+default+and+only+shows+when+the+title+is+focused%2Fhovered+over.%0D%0A%0D%0A+Here%27s+an+example%3A+http%3A%2F%2Fwww.1true.co.uk%2Ffastscroll.html&file=#en|ru|blah', 
  
    'http://президент.рф/документы', 
  
    '"http://testdomen/blabla/" - не заматчило - это by design?', 
  
    'Крутая:http://javascript.ru/forum/project/23691-poisk-ssylok-na-stranice-5.html-ссылка', 
  
    'http://дердымцопцоп,.ru/', 
  
    'http://votrube.ru/uploads/posts/2011-12/1322827006_-(www.votrube.ru)2.jpg', 
  
    'http://yandex.ru-хорошая ссылка'
]; 
  
for( var b, i = 0; i < a.length; i++ ) { 
b = a[i].match( /(?:(http(?:s)?|ftp)(:\/\/)|(www(?:[0-9]+)?\.))([^`~!@#$%^&*()_+|=\\{}\[\];:'"<,>?\/\s]+)\.((?:([^`~!@#$%^&*()_+|=\\{}\[\];:'"<,>?\/\s]+)\/[^\s]+(?!\s|$)[^`~!@#$%^&*()_+|=\\{}\[\];:'"<,.>\-?\s]+)|([^`~!@#$%^&*()_+|=\\{}\[\];:'"<,>?\/\s]+))/ig ); 
  
alert(b); 
}
Ответить с цитированием
  #76 (permalink)  
Старый 05.12.2011, 00:25
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от devote Посмотреть сообщение
Хоть покажешь полный результат?
Ок, только это два разных результата, для одного из которых подходит и твоя рега, может я её немного конкретизирую, а второй результат может быть получен не так скоро как хотелось бы, поэтому если вспомню, то отпишусь обязательно.

Первую регу может завтра выложу, попробую сократить твою. Идею твою я понял и рега должна получиться короче.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 05.12.2011 в 00:41.
Ответить с цитированием
  #77 (permalink)  
Старый 05.12.2011, 00:47
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

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

var a = [  
    'Привет, на вот зацени ссылку: "http://test.ru/blablablah.html?test=param&qwerty#anchor." это крутая ссыль =) и вот еще [url]www.google.ru[/url], [url]www.tarampampam.com[/url]!!! и вот еще файлик на ФТП ftp://tarampampam.ru/file.zip.',  
    
    'http://translate.google.ru/?js=n&prev=_t&hl=ru&ie=UTF-8&layout=2&eotf=1&sl=en&tl=ru&text=Possibly+another+solution+would+be+to+have+the+description+text+hidden+by+default+and+only+shows+when+the+title+is+focused%2Fhovered+over.%0D%0A%0D%0A+Here%27s+an+example%3A+http%3A%2F%2Fwww.1true.co.uk%2Ffastscroll.html&file=#en|ru|blah',  
    
    'http://президент.рф/документы',  
    
    '"http://testdomen/blabla/" - не заматчило - это by design?',  // не корректная ссылка, нет верхнего домена
    
    'Крутая:http://javascript.ru/forum/project/23691-poisk-ssylok-na-stranice-5.html-ссылка',  
    
    'http://дердымцопцоп,.ru/',  // не корректная ссылка
    
    'http://votrube.ru/uploads/posts/2011-12/1322827006_-(www.votrube.ru)2.jpg',  
    
    'http://yandex.ru-хорошая ссылка',

    'ftp://username:password@domen/blah/', // не корректная нет верхнего домена

    'ftp://username:password@domen.ru/blah/',

    'ftp://password@domen.ru/blah/',  // допустимая ссылка

    'ftp://username:@domen.ru/blah/',   // допустимая ссылка

    'ftp://username:domen.ru/blah/',  // не корректная ссылка

    'ftp://username@:domen.ru/blah/',  // не корректная ссылка

    'http://blah.ru:8089',

    'http://blah.ru:8080/lalalala/',

    'ftp://username:password@domen.ru:3131/blah/'
]; 

for( var b, i = 0; i < a.length; i++ ) {  
b = a[i].match( /(?:(http(?:s)?|ftp)(:\/\/)(?:[^:]+(?::)?[^@]+@)?|(?:[^:]+(?::)?[^@]+@)?(www(?:[0-9]+)?\.))([^`~!@#$%^&*()_+|=\\{}\[\];:'"<,>?\/\s]+)\.((?:([^`~!@#$%^&*()_+|=\\{}\[\];:'"<,>?\/\s]+)(?::[0-9]+)?\/[^\s]+(?!\s|$)[^`~!@#$%^&*()_+|=\\{}\[\];:'"<,.>\-?\s]+)|([^`~!@#$%^&*()_+|=\\{}\[\];:'"<,>?\/\s]+)(?::[0-9]+)?)/ig );  
    
alert(b);
}

Последний раз редактировалось devote, 05.12.2011 в 00:56. Причина: добавил номера портов...
Ответить с цитированием
  #78 (permalink)  
Старый 05.12.2011, 00:57
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

номера портов добавил... про них то я подзабыл)))
Ответить с цитированием
  #79 (permalink)  
Старый 05.12.2011, 02:09
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,495

А теперь ещё придумайте как оборачивать такие ссылки:
http://<u>www.<b>google</b>.ru</u>/#q=trololo
*trollface.jpg*
__________________
29375, 35
Ответить с цитированием
  #80 (permalink)  
Старый 05.12.2011, 02:24
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

replace(/<\/?\S*?>/g)
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск текста на странице Azazaza jQuery 6 16.02.2013 00:47
Поиск на странице maza51 Общие вопросы Javascript 1 20.03.2011 12:26
Поиск на странице no_name jQuery 4 07.09.2010 13:26
Получить адреса всех ссылок на странице monya-or jQuery 6 13.05.2010 12:55
Загрузить title для ссылок на странице MarikVal jQuery 0 27.07.2009 20:38