телефон для проверки javascript

#javascript #html #css #regex

#javascript #HTML #css #регулярное выражение

Вопрос:

У меня есть эта функция, целью которой является проверка телефонного номера, введенного пользователем, с базой в 2 переменных регулярного выражения.

если пользователь выбрал страну Швеция и вводит 212341512, предупреждение не должно появиться, поскольку телефон действителен, однако этого не происходит. я по-прежнему получаю предупреждающее сообщение, даже если номер телефона соответствует условиям в переменных индикаторах.

 function validateTelephone() {
            var telephone = document.getElementById('txtTel');
            var country=document.getElementById('ddCountry');
            var indicators= /^(21|22)d{7}$/;

                   if (country.value == "Sweden") {
                        if (!indicators.test(telephone.value)) {
                        document.getElementById('lblWarning').style.color = "red";
                        document.getElementById('lblWarning').innerHTML = 'Invalid Telephone Number';
                        } else {
                        document.getElementById('lblWarning').innerHTML = '';
                        }
                    } else{
                     document.getElementById('lblWarning').innerHTML = ' ';
                    }

         }
  

если у вас, ребята, есть какие-либо предложения по моему коду или способу решения этой проблемы, я был бы признателен, поскольку я новичок в этом языке

Ответ №1:

Я бы использовал libphonenumber, в котором уже есть библиотека JavaScript, созданная для вас.

https://code.google.com/p/libphonenumber/

Что касается вашего кода, регулярное выражение правильное и соответствует указанному номеру.

Пожалуйста, попробуйте использовать JavaScript-отладчик Chrome. (щелкните правой кнопкой мыши страницу, проверьте элемент, вкладку источники). Установите точку останова в начале вашей функции и посмотрите, что произойдет. Проверьте значения переменных.

Комментарии:

1. спасибо, а как насчет кода? вы видите что-нибудь неправильное?

2. я могу это сделать, но если бы страна не была Швецией, ошибка никогда бы не была напечатана с самого начала, и все, что я получаю, это сообщение об ошибке EDIT: ребята, я удалил «!» и инвертировал оператор IF, и теперь это работает. есть идеи, почему это не сработало?

3. Я бы поддержал тебя, но твоя репутация прекрасна 9,999, поэтому я не буду : D

4. Итак? Поддерживаю тебя? Помните, что с этого момента ваша отображаемая репутация будет сокращена и получит «k» в конце. Вы уверены?

5. Выполнено. Используй свои сверхспособности: D