Как правильно настроить проверку формы с использованием регулярного выражения?

Есть поле, в котором идет проверка на телефон или email. Но когда пользователь начинает вводить номер с +7, то регулярка определяет это как ввод email и пользователь видит некорректную подсказку. Подскажите, как нужно изменить регулярное выражение?
$('#input').on('keyup', function() {
    var val = $('#input').val();
    if (val != '') {
        if (/[^[0-9]/.test(val)) {
            var pattern = /^([a-z0-9_\.-])+@[a-z0-9-]+\.([a-z]{2,4}\.)?[a-z]{2,4}$/i;
            if (pattern.test(val)) {
                $('#valid').html('');
                $('#input').removeClass('error');
            } else {
                $('#valid').html('<span class="design-form">Пожалуйста, введите корректный e-mail</span>');
            }
        } else {
            if (val.length >= 10) {
                $('#valid').html('');
                $('#input').removeClass('error');
            } else {
                $('#valid').html('<span class="design-form">Пожалуйста, введите правильный номер телефона</span>');
            }
        }
    } else {
        $('#valid').html('<span class="design-form">Поле не должно быть пустым</span>');
    }
});
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ksnk
Может - проще на email проверять ? в телефоне вряд ли появится символ @, а в почте - он обязателен.
if (/@/.test(val)) { 
...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час