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?
 
Полный код в студию.
 
Там слишком много лишнего кода, приведу основной, который относится к данной проблеме

Код:
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');
            }
        });
 
Там слишком много лишнего кода, приведу основной, который относится к данной проблеме

Код:
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');
            }
        });
нужен полный код страницы, а не функции...
 
Для просмотра ссылки Войди или Зарегистрируйся добавляете товар в корзину, переходите в корзину, где выбираете номер телефона. Сейчас прописал, чтобы при выборе в графе телефона Украины - было 10 знаков, при выборе, например, России, от 10 до 14 знаков. Но валидация телефонного поля при этом всё равно ограничена только 10 знаками.
 
Для просмотра ссылки Войди или Зарегистрируйся добавляете товар в корзину, переходите в корзину, где выбираете номер телефона. Сейчас прописал, чтобы при выборе в графе телефона Украины - было 10 знаков, при выборе, например, России, от 10 до 14 знаков. Но валидация телефонного поля при этом всё равно ограничена только 10 знаками.
Вы точно дали правильную ссылку ?
Я не вижу что там можно добавить в корзину и где вообще там корзина.
 
Назад
Сверху