Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.08.2012, 17:12
Интересующийся
Отправить личное сообщение для dengunya Посмотреть профиль Найти все сообщения от dengunya
 
Регистрация: 27.08.2012
Сообщений: 10

помогите "разбить" url
здравствуйте.
есть страница - каталог товаров, где перегружается контент, когда посетитель кликает по фильтрам. идет обращение к функции, аргументом является строка типа
http://domen.com/g-star,theory/shop-...e?_format=json
или
http://domen.com/shop-asos,ssense/ja...e?_format=json
тоесть некоторых может и не быть.
мне надо разбить эту строку, чтоб вывести, какие фильтры применены и ссылки для их удаления, что-то вроде:
<a href=getContent('http://domen.com/shop-ssense/jackets,shorts/browse?_format=json') >asos</a>

зараннее благодарен.
Ответить с цитированием
  #2 (permalink)  
Старый 27.08.2012, 17:44
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

dengunya, что именно нужно получить?
пару-тройку входных-выходных строк приведите
Ответить с цитированием
  #3 (permalink)  
Старый 27.08.2012, 18:12
Интересующийся
Отправить личное сообщение для dengunya Посмотреть профиль Найти все сообщения от dengunya
 
Регистрация: 27.08.2012
Сообщений: 10

допустим, мы сейчас здесь:
var url = 'http://dev.swyf.pp.ciklum.com/us-men/g-star,theory/shop-asos,ssense/browse?_format=json&callback=?';

у нас сейчас 4 фильтра: g-star и theory в первом "блоке", asos и ssense во втором. может быть еще и 3й напр. .../shop-asos,ssense/shorts/browse?...
пробовал так:
var u2 = url.substring(36).split('browse?')[0];

itemObj['normalized_name'] - переменная, где перебираю уже примененные фильтры
var replString = [",/" , "/," , "//" , "/shop-/"];
var iRepl = 0;
var ur = u2.replace(itemObj['normalized_name'],'');
do {
ur = ur.replace(replString[iRepl],'/');
iRepl++;
}
while (replString[iRepl]);
ur = ur.replace('-,','-');
						
var newUrl = 'http://dev.swyf.pp.ciklum.com/us-men'+ur+'browse?_format=json&callback=?';
$("div#searchBar").prepend("<a href='javascript:getContent(\""+newUrl+"\");'>"+itemObj['normalized_name']+"</a>");

в 12й строке вывожу ссылки, которыми удалять фильтры.
это все, собственно, в теле getContent()
но проблема в том, что мне и добавлять их (фильтры) надо, то есть мне надо явно выделить этих 3 части urlа (это просто, если их 3, но может быть 2 или 1). примечательно, что во втором перед ними идет еще слово "shop-"

Последний раз редактировалось dengunya, 27.08.2012 в 18:17.
Ответить с цитированием
  #4 (permalink)  
Старый 27.08.2012, 18:19
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

dengunya,
1. Приведите 4 Варианта входной строки и для каждой итоговый массив
Ответить с цитированием
  #5 (permalink)  
Старый 27.08.2012, 18:25
Интересующийся
Отправить личное сообщение для dengunya Посмотреть профиль Найти все сообщения от dengunya
 
Регистрация: 27.08.2012
Сообщений: 10

a)где мы: http://dev.swyf.pp.ciklum.com/us-men...,ssense/browse
b)ссылка "asos" должна быть на http://dev.swyf.pp.ciklum.com/us-men...-ssense/browse
---------------
a) http://dev.swyf.pp.ciklum.com/us-men...,theory/browse
b) theory на http://dev.swyf.pp.ciklum.com/us-men/g-star/browse
в общем-то мне надо повторить то, что реализовано на dev.swyf.pp.ciklum.com в плане фильтров
Ответить с цитированием
  #6 (permalink)  
Старый 27.08.2012, 18:28
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

http://dev.swyf.pp.ciklum.com/us-men/g-star,theory/shop-asos,ssense/browse
http://dev.swyf.pp.ciklum.com/us-men/g-star,theory/shop-ssense/browse
http://dev.swyf.pp.ciklum.com/us-men/g-star,theory/browse
http://dev.swyf.pp.ciklum.com/us-men/g-star/browse

Поправил для полной видимости
Ответить с цитированием
  #7 (permalink)  
Старый 27.08.2012, 18:28
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

dengunya,
Поясните каждую строку
Ответить с цитированием
  #8 (permalink)  
Старый 27.08.2012, 18:45
Интересующийся
Отправить личное сообщение для dengunya Посмотреть профиль Найти все сообщения от dengunya
 
Регистрация: 27.08.2012
Сообщений: 10

http://dev.swyf.pp.ciklum.com/us-men/g-star,theory/shop-asos,ssense/browse
помимо прочих, здесь применен фильтр ssense. мне нужно сделать ссылку ssense, при клике на которую перехожу на
http://dev.swyf.pp.ciklum.com/us-men/g-star,theory/shop-asos/browse
отсюда, например, переходом по ссылке asos мы попадаем на
http://dev.swyf.pp.ciklum.com/us-men/g-star,theory/browse
(для меня проблема, как корректно убрать "остаток" тоесть "shop-")
и в обратном направлении. находясь уже тут
http://dev.swyf.pp.ciklum.com/us-men/g-star,theory/browse
ссылкой asos в фильтрах магазина перейти на
http://dev.swyf.pp.ciklum.com/us-men/g-star,theory/shop-asos/browse
еще есть категории:
мы тут :
http://dev.swyf.pp.ciklum.com/us-men/g-star,theory/shop-asos/browse
кликаем на "shorts" и попадаем на
http://dev.swyf.pp.ciklum.com/us-men/g-star,theory/shop-asos/shorts/browse
Ответить с цитированием
  #9 (permalink)  
Старый 27.08.2012, 18:49
Интересующийся
Отправить личное сообщение для dengunya Посмотреть профиль Найти все сообщения от dengunya
 
Регистрация: 27.08.2012
Сообщений: 10

мне надо соорудить объект елементами которого будут массивы, напр.:
http://dev.swyf.pp.ciklum.com/us-men/g-star,theory/shop-asos/browse
{
brand : [g-star , theory],
shop : [asos],
category : []
}

трудности вызывает, отсутствие, например, категории. в таком случае я не могу просто взять split('/') а потом spli(','), плюс эта вставка "shop". не хватает мне опыта javascript(

Последний раз редактировалось dengunya, 27.08.2012 в 18:53.
Ответить с цитированием
  #10 (permalink)  
Старый 27.08.2012, 19:00
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

var str = 'http://dev.swyf.pp.ciklum.com/us-men/g-star,theory/shop-asos,ssense/browse'

var str0=str.replace(/^(.*?.\/(?=g-star,theory\/))([^\/]*\/)([^\/]*\/)(.*)$/i,'$1')

alert(str0)
alert(RegExp["$2"])
alert(RegExp["$3"])
alert(RegExp["$4"])


var str = 'http://dev.swyf.pp.ciklum.com/us-men/g-star,theory/shop-asos,ssense/browse'

var str0=str.replace(/^(.*?.\/(?=g-star,theory\/))([^\/]*\/)([^\/]*\/)(.*)$/i,'$1')

var Ost = str.replace(str0,'').split("/")

alert(Ost.join(";\n"))

Последний раз редактировалось Deff, 27.08.2012 в 19:05.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разделить URL адрес на составляющие части. Vitia28 Общие вопросы Javascript 5 09.05.2012 19:18
Водяной знак на fancybox bobrina Общие вопросы Javascript 1 03.06.2011 21:11
переход на выбор сайт через поле ввода url (как убрать функцию "открыть все") ? rashid86 Элементы интерфейса 1 31.03.2011 14:54
помогите уменьшить скрипт javasc Javascript под браузер 1 22.01.2011 06:30
Помогите динамически интегрировать значение в URL Yurii Общие вопросы Javascript 14 07.05.2008 15:12