#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