Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.10.2014, 21:48
Новичок на форуме
Отправить личное сообщение для skuty Посмотреть профиль Найти все сообщения от skuty
 
Регистрация: 28.01.2014
Сообщений: 9

SWITCH чертов. Немогу понять в чем дело.
var domainlocation = window.location.href;

	var regular_exp = /.ua\/\w+/g;

	var result_domainlocation = domainlocation.match(regular_exp);




	if ( result_domainlocation == '.ua/Vinogradiv' ) {
		alert('Vinogradiv');
	}
	if ( result_domainlocation == '.ua/Beregove' ) {
		alert('Beregove');
	}




	switch (result_domainlocation) {
		case ".ua/Vinogradiv" : alert("Vinogradiv"); break;
		case ".ua/Beregove" :   alert('Beregove');
	}


Добрый день.
Такая банальная проблема
инструкция IF - все работает,
SWITCH - НЕТ.

подскажите в чем проблема(регулярка работает.)
Ответить с цитированием
  #2 (permalink)  
Старый 23.10.2014, 22:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 30,970

skuty,
result_domainlocation у вас что? сам себе отвечаю массив или null
Сообщение от skuty
инструкция IF - все работает,
ой а если === вместо ==
Ответить с цитированием
  #3 (permalink)  
Старый 23.10.2014, 22:14
Новичок на форуме
Отправить личное сообщение для skuty Посмотреть профиль Найти все сообщения от skuty
 
Регистрация: 28.01.2014
Сообщений: 9

у меня получаеться result_domainlocation = ".ua/Vinogradiv" (допустим).
Еще одно, эта переменная как бы свойство обьекта. Может в этом дело?

та используя инструкцию IF код выполняеться.
а через switch почему то нет.
мне нужен switch, так как много вариантов будет.
я просто синтаксис незнаю или что. должен работать а не работает.
Ответить с цитированием
  #4 (permalink)  
Старый 23.10.2014, 22:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 30,970

skuty,
ну превратите массив в строку то и сравнивайте
switch (''+result_domainlocation)

Сообщение от skuty
у меня получаеться result_domainlocation = ".ua/Vinogradiv" (допустим).
недопустим )))
у вас result_domainlocation = [".ua/Vinogradiv"]
Ответить с цитированием
  #5 (permalink)  
Старый 23.10.2014, 22:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 30,970

skuty,
http://javascript.ru/comparison-operators
Цитата:
Равно (==) Если два операнда не одного типа, javascript преобразовывает типы и сравнивает строго. Если какой-либо операнд - число или булево значение, то операнды преобразуются в числа; если какой-либо операнд строка - второй преобразуются в строку
http://javascript.ru/String/match
http://javascript.ru/switch
Цитата:
Конструкция switch служит для сравнения значения на равенство с различными вариантами.

При этом равенство подразумевается в смысле оператора "===",
доки читать надо
Ответить с цитированием
  #6 (permalink)  
Старый 23.10.2014, 22:33
Новичок на форуме
Отправить личное сообщение для skuty Посмотреть профиль Найти все сообщения от skuty
 
Регистрация: 28.01.2014
Сообщений: 9

Спасибо... вот что значит лишние 2 символа. блин.))
Ответить с цитированием
  #7 (permalink)  
Старый 23.10.2014, 22:37
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от skuty
var regular_exp = /.ua\/\w+/g;
Кстати, точку надо экранировать, или это метасимвол? Нужно отловить именно .ua или xua - где x - любой символ?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #8 (permalink)  
Старый 23.10.2014, 23:25
Новичок на форуме
Отправить личное сообщение для skuty Посмотреть профиль Найти все сообщения от skuty
 
Регистрация: 28.01.2014
Сообщений: 9

именно .ua (так как из урл выбераеться)
спасибо.

Может подскажите как решить проще..
выборку

site.ua/poslugy
site.ua/Kiev/poslugy

при моем выражении береться первое слово, но в первом случаи мне не подходит.

я использую прямой пусть (window.location.href)
думаю в таком случаи использовать window.location.origin, так как у меня еще региональних доменов дофіг(типу kiev.ua, dn.ua, lviv.ua)
Ответить с цитированием
  #9 (permalink)  
Старый 24.10.2014, 00:03
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 5,915

var regular_exp = /\.ua\/(\w+)\//;
var result_domainlocation = domainlocation.match(regular_exp);
if(result_domainlocation) result_domainlocation = result_domainlocation[1];

Сообщение от skuty Посмотреть сообщение
думаю в таком случаи использовать window.location.origin
Если можешь - используй, почему нет.
__________________
29375, 35

Последний раз редактировалось Aetae, 24.10.2014 в 00:08.
Ответить с цитированием
  #10 (permalink)  
Старый 24.10.2014, 00:13
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от terminator-101
 
Регистрация: 14.10.2014
Сообщений: 117

Сообщение от skuty
site.ua/poslugy
site.ua/Kiev/poslugy
Чо проще? Регулярку? Ты выражайся ясней, опиши шаблон который тебе нужен. Если единственный адрес site.ua/Kiev/poslugy то так и пиши /^site\.ua\/Kiev\/poslugy$/, а если надо перескакивать через слеш, то /^site\.ua\/\w+\/poslugy$/i, опиши внятно шаблон. И зачем ты там g поставил? Хочешь чтобы матчились "site.ua/Kiev/poslugy/VSYA HUYNYA site.ua/Kiev/poslugy" или чо?

Последний раз редактировалось terminator-101, 24.10.2014 в 00:28.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемма с jquery fancybox, не могу понять в чем дело! bandesign jQuery 1 16.09.2013 15:35
Скрипт не работает в FF и опера, но работает в IE(в чем дело???) Cepera Firefox/Mozilla 1 24.08.2012 15:46
При установке CSS для Body "overflow: hidden" съезжает верстка, в чем дело? Slevin Kelevra Общие вопросы Javascript 18 08.07.2012 19:27
Не пойму в чем дело danilkin jQuery 0 13.04.2011 01:29
не могу понять в чём ошибка scuter Общие вопросы Javascript 2 28.08.2008 14:22