16.09.2014, 16:25
|
Аспирант
|
|
Регистрация: 10.06.2014
Сообщений: 63
|
|
Почему не работает функция проверки на символы?
Подскажите, вот написал функцию, почему она не выводит phoneNumber?
function phoneCheck(phone)
{
var phoneNumber = true;
if (!check(phone, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '(', ')', '+', ' ')) {
phoneNumber = false;
}
return phoneNumber;
}
var phone = document.getElementById('input_phone').value;
var test = phoneCheck(phone);
alert(test);
|
|
16.09.2014, 16:39
|
|
Профессор
|
|
Регистрация: 23.12.2013
Сообщений: 1,856
|
|
Webtest,
а что говорит консоль? И содержимое функции check нам не известно, а осенью телепатические способности ухудшаются.
|
|
16.09.2014, 16:47
|
Аспирант
|
|
Регистрация: 10.06.2014
Сообщений: 63
|
|
Safort, вот весь код, должно быть так, что если в инпуте есть символы, кроме тех, что я перечислил, то выводится phoneNumer = false, если нет, то true.
function check(phone)
{
var ok = true;
for (var i = 0; i < phone.length; i++) {
var chr = phone.charAt(i);
var found = false;
for (var j = 1; j < check.length; j++) {
if (chr == check[j]) found = true;
}
if (!found) ok = false;
}
return ok;
}
function validatePhone(phone)
{
var phoneNumber = true;
if (!check(phone, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '(', ')', '+', ' ')) {
phoneNumber = false;
}
return phoneNumber;
}
Последний раз редактировалось Webtest, 16.09.2014 в 16:55.
|
|
16.09.2014, 17:12
|
|
Профессор
|
|
Регистрация: 23.12.2013
Сообщений: 1,856
|
|
Webtest,
функция check ожидает на вход 1 аргумент типа массив, а ты передаёшь ей аж 16 аргументов, которые совсем не массивы.
|
|
16.09.2014, 17:14
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 456
|
|
Webtest,
function validatePhone(phone){
return /^[\d\-\(\)\+\s]+$/.test(phone);
}
|
|
16.09.2014, 17:27
|
Аспирант
|
|
Регистрация: 10.06.2014
Сообщений: 63
|
|
Rise, а можете пояснить как проверяет даннная регулярка?
^[\d\-\(\)\+\s]+$
Т.е. она проверяет строку на наличие символов: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '(', ')', '+', ' '] ?
|
|
16.09.2014, 17:34
|
Аспирант
|
|
Регистрация: 10.06.2014
Сообщений: 63
|
|
Rise, спасибо!
|
|
16.09.2014, 20:28
|
Профессор
|
|
Регистрация: 23.10.2010
Сообщений: 2,718
|
|
ТС, вам на отсутствие надо проверять. Обычно просто считают сколько там цифр, а все остальное сделает формат.
Допустим вы хотите чтобы давали 10 цифр, в федеральном в том числе городские, то есть с кодом - значит 10, если в вашем селе 5 - значит 5, или там тире 7.
Получив цифры можете их даже как число сохранить, или сразу отформатировать.
Интегрально для деловых контактов код города мастхэв, так что считайте на 10.
Кстати, аргументы же можно передавать навалом и в ява-скриптах? То есть определяем
function check() ...
а внутри получаем массив из того что затем вписали в аргументы. Или нет?
Последний раз редактировалось kostyanet, 16.09.2014 в 20:30.
|
|
|
|