|
23.10.2014, 22:48
|
Новичок на форуме
|
|
Регистрация: 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 - НЕТ.
подскажите в чем проблема(регулярка работает.)
|
|
23.10.2014, 23:04
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
skuty,
result_domainlocation у вас что? сам себе отвечаю массив или null
Сообщение от skuty
|
инструкция IF - все работает,
|
ой а если === вместо ==
|
|
23.10.2014, 23:14
|
Новичок на форуме
|
|
Регистрация: 28.01.2014
Сообщений: 9
|
|
у меня получаеться result_domainlocation = ".ua/Vinogradiv" (допустим).
Еще одно, эта переменная как бы свойство обьекта. Может в этом дело?
та используя инструкцию IF код выполняеться.
а через switch почему то нет.
мне нужен switch, так как много вариантов будет.
я просто синтаксис незнаю или что. должен работать а не работает.
|
|
23.10.2014, 23:25
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
skuty,
ну превратите массив в строку то и сравнивайте
switch (''+result_domainlocation)
Сообщение от skuty
|
у меня получаеться result_domainlocation = ".ua/Vinogradiv" (допустим).
|
недопустим )))
у вас result_domainlocation = [".ua/Vinogradiv"]
|
|
23.10.2014, 23:32
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
skuty,
http://javascript.ru/comparison-operators
Цитата:
|
Равно (==) Если два операнда не одного типа, javascript преобразовывает типы и сравнивает строго. Если какой-либо операнд - число или булево значение, то операнды преобразуются в числа; если какой-либо операнд строка - второй преобразуются в строку
|
http://javascript.ru/String/match
http://javascript.ru/switch
Цитата:
|
Конструкция switch служит для сравнения значения на равенство с различными вариантами.
При этом равенство подразумевается в смысле оператора "===",
|
доки читать надо
|
|
23.10.2014, 23:33
|
Новичок на форуме
|
|
Регистрация: 28.01.2014
Сообщений: 9
|
|
Спасибо... вот что значит лишние 2 символа. блин.))
|
|
23.10.2014, 23:37
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Сообщение от skuty
|
var regular_exp = /.ua\/\w+/g;
|
Кстати, точку надо экранировать, или это метасимвол? Нужно отловить именно .ua или xua - где x - любой символ?
__________________
В личку только с интересными предложениями
|
|
24.10.2014, 00:25
|
Новичок на форуме
|
|
Регистрация: 28.01.2014
Сообщений: 9
|
|
именно .ua (так как из урл выбераеться)
спасибо.
Может подскажите как решить проще..
выборку
site.ua/poslugy
site.ua/Kiev/poslugy
при моем выражении береться первое слово, но в первом случаи мне не подходит.
я использую прямой пусть (window.location.href)
думаю в таком случаи использовать window.location.origin, так как у меня еще региональних доменов дофіг(типу kiev.ua, dn.ua, lviv.ua)
|
|
24.10.2014, 01:03
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
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 в 01:08.
|
|
24.10.2014, 01:13
|
Кандидат Javascript-наук
|
|
Регистрация: 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 в 01:28.
|
|
|
|