Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.09.2014, 16:25
Аспирант
Отправить личное сообщение для Webtest Посмотреть профиль Найти все сообщения от Webtest
 
Регистрация: 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);
Ответить с цитированием
  #2 (permalink)  
Старый 16.09.2014, 16:39
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Webtest,
а что говорит консоль? И содержимое функции check нам не известно, а осенью телепатические способности ухудшаются.
Ответить с цитированием
  #3 (permalink)  
Старый 16.09.2014, 16:47
Аспирант
Отправить личное сообщение для Webtest Посмотреть профиль Найти все сообщения от Webtest
 
Регистрация: 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.
Ответить с цитированием
  #4 (permalink)  
Старый 16.09.2014, 17:12
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Webtest,
функция check ожидает на вход 1 аргумент типа массив, а ты передаёшь ей аж 16 аргументов, которые совсем не массивы.
Ответить с цитированием
  #5 (permalink)  
Старый 16.09.2014, 17:14
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 456

Webtest,
function validatePhone(phone){
	return /^[\d\-\(\)\+\s]+$/.test(phone);
}
Ответить с цитированием
  #6 (permalink)  
Старый 16.09.2014, 17:27
Аспирант
Отправить личное сообщение для Webtest Посмотреть профиль Найти все сообщения от Webtest
 
Регистрация: 10.06.2014
Сообщений: 63

Rise, а можете пояснить как проверяет даннная регулярка?
^[\d\-\(\)\+\s]+$
Т.е. она проверяет строку на наличие символов: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '(', ')', '+', ' '] ?
Ответить с цитированием
  #7 (permalink)  
Старый 16.09.2014, 17:34
Аспирант
Отправить личное сообщение для Webtest Посмотреть профиль Найти все сообщения от Webtest
 
Регистрация: 10.06.2014
Сообщений: 63

Rise, спасибо!
Ответить с цитированием
  #8 (permalink)  
Старый 16.09.2014, 20:28
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

ТС, вам на отсутствие надо проверять. Обычно просто считают сколько там цифр, а все остальное сделает формат.

Допустим вы хотите чтобы давали 10 цифр, в федеральном в том числе городские, то есть с кодом - значит 10, если в вашем селе 5 - значит 5, или там тире 7.

Получив цифры можете их даже как число сохранить, или сразу отформатировать.

Интегрально для деловых контактов код города мастхэв, так что считайте на 10.

Кстати, аргументы же можно передавать навалом и в ява-скриптах? То есть определяем

function check() ...

а внутри получаем массив из того что затем вписали в аргументы. Или нет?

Последний раз редактировалось kostyanet, 16.09.2014 в 20:30.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов конструктора без new. Почему не со всеми работает? danik.js Javascript под браузер 2 23.02.2014 00:09
почему не работает функция Терехов Станислав Общие вопросы Javascript 28 30.12.2013 14:56
почему один вызов load работает, а другой - нет kravru jQuery 1 16.09.2013 20:51
Не работает пользовательская функция Synov_son Общие вопросы Javascript 6 14.09.2013 14:36