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

странная регулярка и видимо не проверенная временем
Сообщение от qwerty-клавиатура
([a-zA-Z]+:)
протокол может содержать цифры, а тут только буквы
Сообщение от qwerty-клавиатура
(?:([a-zA-Z]+:)\/\/)?
ссылка может начинаться с двух слешей без протокола, а тут это не предусмотрено
Сообщение от qwerty-клавиатура
(?:([-+._a-zA-Z0-9]+)
имя пользователя часто имеет и другие символы
Сообщение от qwerty-клавиатура
(?::([-+._a-zA-Z0-9]+))?@)?
пароль, вообще может содержать все что угодно

про остальное вообще сложно сказать что намудрено.

Сообщение от qwerty-клавиатура
return false;
что за возврат ложного значения? любая строка в первую очередь если она не подходит любым критериям, должна расцениваться как путь(pathname).

вот мой вариант написанный как то давно. хотя он и не претендует на идеал, ибо не проходил жестких тестов.
function parseURL(url) {
    var m = /(?:([\w0-9]+:))?(?:\/\/(?:(?:([^:]*):)?([^@]*)@)?(([^\/:\?#]+)(?:\:([0-9]+))?))?([^\?#]*)(?:(\?[^#]+)|\?)?(?:(#.*))?/.exec(url);
    return {
        protocol: m[1]||'',
        username: m[2]||'',
        password: m[3]||'',
        hostname: m[5]||'',
        host: m[4]||'',
        port: m[6]||'',
        pathname: m[7].replace(/^\s+/g,''),
        search: (m[8]||'').replace(/^\s+|\s+$/g,''),
        hash: m[9]||''
    }
}
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine

Последний раз редактировалось devote, 11.05.2013 в 11:17.
Ответить с цитированием