Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   SWITCH чертов. Немогу понять в чем дело. (https://javascript.ru/forum/events/51090-switch-chertov-nemogu-ponyat-v-chem-delo.html)

skuty 24.10.2014 01:36

есть сайты
site.ua/services
site.kiev.ua/services

site.dn.ua/services
site.dn.ua/Dobropole/services
site.dn.ua/Kirovskoe/services
site.dn.ua/Debalcevo/services

site.lviv.ua/services
site.lviv.ua/Zolochiv/services

и т.д. ...

для каждого разное содержимое.

нужно определить адрес загружаемого сайта и вывести соответственный блок.

terminator-101 24.10.2014 01:57

skuty,

вот так попробуйте
/^site\.(ua|kiev|dn|lviv)\S*\/services$/i

terminator-101 24.10.2014 02:14

skuty,
Точней, наверное, вот так будет

/^site\.(ua|kiev|dn|lviv)[/\w.-]*\/services$/i

Хотя для вас это особого значения не имеет, Вам насколько я понял, просто адрес надо хапнуть, на валидность проверять не надо.
ЗЫ и вот еще что. Если допустимы адреса вида site.ua/services/ (со слешем в конце) то

/^site\.(ua|kiev|dn|lviv)[/\w.-]*\/services\/?$/i

terminator-101 24.10.2014 02:38

skuty,
Да, вот еще что. Если будешь дергать не именно в таком виде, как ты написал site... а как то http://... то, само сабой, первый знак ^ тебе не нужен.

danik.js 24.10.2014 06:30

Цитата:

Сообщение от skuty
нужно определить адрес загружаемого сайта и вывести соответственный блок

Не уж то сервер не знает для какого региона генерируется страница? :D
Он наверняка знает, а значит не нужно никаких странных регулярок. Заметь, блок твой не проиндексируется поисковиками при твоем подходе )

kostyanet 24.10.2014 18:09

Процитирую целиком

Цитата:

Сообщение от skuty
есть сайты
site.ua/services
site.kiev.ua/services

site.dn.ua/services
site.dn.ua/Dobropole/services
site.dn.ua/Kirovskoe/services
site.dn.ua/Debalcevo/services

site.lviv.ua/services
site.lviv.ua/Zolochiv/services

и т.д. ...

для каждого разное содержимое.

нужно определить адрес загружаемого сайта и вывести соответственный блок.

Нетрудно заметить что в отличии от нормальных Search string - с которыми вы бы начухались - тут используются пути, которые фактически отождествляют namespace.

Несмотря что идея бредовая грузить весь контент динамически, контроллер тут очевидный объект (можно даже наследование организовать, если есть какие-то общие методы или свойства).

берем

site.dn.ua/services
site.dn.ua/Dobropole/services
site.dn.ua/Kirovskoe/services
site.dn.ua/Debalcevo/services

делаем

var sites = {

   'site.dn.ua':{

      services:{// тут добро},

      Dobropole:{
          services:{// тут добро}
      },

      Kirovskoe:{
          services:{// тут добро}
      },

      Debalcevo:{
          services:{// тут зло}
      }

   }
};


Теперь значиццо sites[location.hostname] нам дает путь к пропертям/методам данного домена, ну а дальше и так понятно. Колем pathname и профтыкаем в следующие квадратные скобки и немедленно попадаем на правильную дорогу.

kostyanet 24.10.2014 18:15

Я к тому что какой тут в п...у свич?

kostyanet 24.10.2014 18:22

Кстати да, я так навигацию делаю на сайтах, причем обычным массивом, без наворотов в стиле implements Countable, потому что в php есть указатели. С указателями приходиться быть очень осторожным, но зато вся тряхомудия туда-сюда не переписывается. Навигация базируется в БД в каноничном id pid дереве, откуда я ее засасываю в массив (ну, в объект конечно, чтобы глобально добывать) и дальше в любое время откуда хочешь что надо читаешь или пишешь.

skuty 25.10.2014 22:32

Я начинающий в этом деле... немного знаю.
Задача такова есть сайты:

site.dn.ua/services
site.dn.ua/Dobropole/services
site.dn.ua/Kirovskoe/services

у них один и тот же файл пхп(разная база данных). Я, хочу вставить небольшой блок инфо для каждого свой.

Потому решил делать проверку на window.location.href и выбрать регуляркой первое слово после (.ua).
Проверяю cвитчом.. какой сайт(точнее под сайт) и соответсвенный блок вставляю.

Минус этого способа, я немогу проверить одним свитчом
kiev.ua
или
dn.ua

Можно делать както свитч в свитче?) Допустим ниодин вариант не подошел, запустить другую проверку.(Допустив в дефаульте вставить?)

kostyanet 26.10.2014 19:16

Кто ему такое задание дал, Стрелков что ли?

Ладно, понятно что вы научились свитчить и собираетесь играть эту струну до пенсии.

А вот в случае с готовой картой ресурсов которая их по лесенке вам поднимет и выдаст что конкретно непонятно?


Часовой пояс GMT +3, время: 21:40.