Показать сообщение отдельно
  #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. Причина: добавил номера портов...
Ответить с цитированием