Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.10.2014, 13:19
Кандидат Javascript-наук
Отправить личное сообщение для vuler Посмотреть профиль Найти все сообщения от vuler
 
Регистрация: 16.02.2012
Сообщений: 109

Парсинг URL строки
Всем добрый день.
Есть у кого-нибудь рабочий скрипт для парсинга URL строки и обратно. Поискал в интернете нечто подобное, но мне не подошло. Например этот- http://habrahabr.ru/post/177559/
Дело в том, что в строке записан массив.
Пример http://localhost/index.php?page=user...%5D=skype&cp=5
или
http://localhost/index.php?page=user&tt=tab&pop=2&sort[0][0]=id&sort[0][1]=down&tn=users&nv[0]=id&nv[1]=skype&cp=5
Обычные переменные определяет.tt=tab, а вот там где записан массив - появляется проблема. видит только всю строчку целеком.
Есть у кого-нибудь на примете рабочий скрипт, который может грамотно парсить URL строку?
Заранее спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 25.10.2014, 14:29
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

function parseURL(url) {
  var parts = url.split('?');
      link = parts.length > 1 ? parts.shift() : '';
      gets = parts.join('?').split('&'),
      data = {};

  for(var index = 0; index < gets.length; index++) {
    parts = gets[index].split('=');
    assignValue(data, decodeURIComponent(parts.shift()), decodeURIComponent(parts.join('=')));
  }

  function assignValue(data, key, value) {
    var parts = key.replace(/\[(.*?)\]/g, '.$1').split(/\./);
    key = parts.shift();
    if (parts.length === 0) {
      data[key] = value;
    } else {
      assignValue(key in data ? data[key] : (data[key] = {}), parts.join('.'), value);
    }
  }

  return {
    link: link,
    data: data
  }
}

alert(
  JSON.stringify(
    parseURL('http://localhost/index.php?page=user&tt=tab&pop=2&sort%5B0%5D%5B0%5D=id&sort%5B0%5D%5B1%5D=down&tn=users&nv%5B0%5D=id&nv%5B1%5D=skype&cp=5'
    ),
    null,
    '    '
  )
);
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #3 (permalink)  
Старый 25.10.2014, 15:33
Кандидат Javascript-наук
Отправить личное сообщение для vuler Посмотреть профиль Найти все сообщения от vuler
 
Регистрация: 16.02.2012
Сообщений: 109

Спасибо..нешел еще в инете вот это. http://dev.petitchevalroux.net/javas...cript.111.html

Но почему-то
Url.prototype.parseQuery()
выдает пустую строку
Ответить с цитированием
  #4 (permalink)  
Старый 25.10.2014, 15:47
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

По-моему тут надо урл засунуть в тег <a>, то есть сделать такой и в href=url, а потом доставать какие хочешь части, но search string все равно придется парсить и есть такое подозрение что все уже давно написано и запрототипровано.

В php это parse_str() и соответственно build_http_query(), поищите со словом js

UPD, не видел фрунцузского сайта, вы по-французски что ли ищите?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен Java Script (из URL в форму) AntonR Работа 2 11.10.2013 12:18
Не появляются картинки через jquery lobanov_kirill_ jQuery 1 22.09.2012 20:05
Парсинг хеша url с выводом на странице. fayriot Общие вопросы Javascript 3 15.03.2012 10:32
Водяной знак на fancybox bobrina Общие вопросы Javascript 1 03.06.2011 21:11
переход на выбор сайт через поле ввода url (как убрать функцию "открыть все") ? rashid86 Элементы интерфейса 1 31.03.2011 14:54