Var regex с условием if и else if

Myles

Создатель
Регистрация
11 Июн 2015
Сообщения
33
Реакции
3
Здравствуйте. Подскажите, пожалуйста. Написал следующий код для проверки номера телефона при оформлении покупки с условием, если выбрана одна страна (присваивается класс opt216), то можно ввести только 10 цифр. Если все остальные, то от 10 до 14.
Код:
function validatePhoneNumber(s)
{
    if ($('div').hasClass("opt216")) {
        var reg = /^\+(?:[0-9] ?){10}$/;

    }else {
        var reg = /^\+(?:[0-9] ?){10,14}$/;

    }
    return reg.test(s);
}
Но почему - то условие else не срабатывает, работает только первое условие с 10 цифрами в поле. Можно ли вообще использовать переменную с regex в if/else?
 

qpPeW

Постоялец
Регистрация
4 Окт 2009
Сообщения
139
Реакции
60
Полный код в студию.
 

Myles

Создатель
Регистрация
11 Июн 2015
Сообщения
33
Реакции
3
Там слишком много лишнего кода, приведу основной, который относится к данной проблеме

Код:
function validatePhoneNumber(s)
{
    var reg;
    if ($('div').hasClass("opt216")) {
        reg = /^\+(?:[0-9] ?){10}$/;
    }else  if ($('div').hasClass("opt177")) {
        reg = /^\+(?:[0-9] ?){10,14}$/;
    }
    return reg.test(s);
}
Код:
$('input[name="payment_address[phone_mobile]"]').on('blur', function () {
            if ($(this).siblings('.supercheckout-required').css('display') == "none" && $(this).val() == '')
            {
                $(this).removeClass('ok-form error-form');
            } else if ($(this).val() == '') {
                $(this).removeClass('ok-form').addClass('error-form');
                $(this).parent().append('<span class="errorsmall">' + required_error + '</span>');
            } else if (!validatePhoneNumber($(this).val()))
            {
                $(this).removeClass('ok-form').addClass('error-form');
                $(this).parent().append('<span class="errorsmall">' + invalid_number + '</span>');
            } else if (validatePhoneNumber($(this).val()))
            {
                $(this).removeClass('error-form').addClass('ok-form');
            }
        });
 

qpPeW

Постоялец
Регистрация
4 Окт 2009
Сообщения
139
Реакции
60
Там слишком много лишнего кода, приведу основной, который относится к данной проблеме

Код:
function validatePhoneNumber(s)
{
    var reg;
    if ($('div').hasClass("opt216")) {
        reg = /^\+(?:[0-9] ?){10}$/;
    }else  if ($('div').hasClass("opt177")) {
        reg = /^\+(?:[0-9] ?){10,14}$/;
    }
    return reg.test(s);
}
Код:
$('input[name="payment_address[phone_mobile]"]').on('blur', function () {
            if ($(this).siblings('.supercheckout-required').css('display') == "none" && $(this).val() == '')
            {
                $(this).removeClass('ok-form error-form');
            } else if ($(this).val() == '') {
                $(this).removeClass('ok-form').addClass('error-form');
                $(this).parent().append('<span class="errorsmall">' + required_error + '</span>');
            } else if (!validatePhoneNumber($(this).val()))
            {
                $(this).removeClass('ok-form').addClass('error-form');
                $(this).parent().append('<span class="errorsmall">' + invalid_number + '</span>');
            } else if (validatePhoneNumber($(this).val()))
            {
                $(this).removeClass('error-form').addClass('ok-form');
            }
        });
нужен полный код страницы, а не функции...
 

Myles

Создатель
Регистрация
11 Июн 2015
Сообщения
33
Реакции
3
Для просмотра ссылки Войди или Зарегистрируйся добавляете товар в корзину, переходите в корзину, где выбираете номер телефона. Сейчас прописал, чтобы при выборе в графе телефона Украины - было 10 знаков, при выборе, например, России, от 10 до 14 знаков. Но валидация телефонного поля при этом всё равно ограничена только 10 знаками.
 

qpPeW

Постоялец
Регистрация
4 Окт 2009
Сообщения
139
Реакции
60
Для просмотра ссылки Войди или Зарегистрируйся добавляете товар в корзину, переходите в корзину, где выбираете номер телефона. Сейчас прописал, чтобы при выборе в графе телефона Украины - было 10 знаков, при выборе, например, России, от 10 до 14 знаков. Но валидация телефонного поля при этом всё равно ограничена только 10 знаками.
Вы точно дали правильную ссылку ?
Я не вижу что там можно добавить в корзину и где вообще там корзина.
 
Сверху