Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.11.2012, 15:27
Новичок на форуме
Отправить личное сообщение для VetalMan23 Посмотреть профиль Найти все сообщения от VetalMan23
 
Регистрация: 21.11.2012
Сообщений: 6

Проверка номера телефона
Стоит задача проверить форму на правильность записи формата:
8-(XXXX)-XXXXXX 8-(XXX)-XXX-XX-XX
Всё в 1 строку, учитывая пробел.
У меня возникла проблема проверки повторяющихся наборов символов: ")-". Ещё программа не может проверить "-", выдавая ошибку.

Мои попытки:

function proverka0()
{
Telefon=document.form1.TLF.value;
a=Telefon.indexOf('8-(');
b=Telefon.indexOf(')-');
c=Telefon.indexOf(' 8-(');
/*d=Telefon.indexOf('-');
e=Telefon.indexOf('-');
f=Telefon.indexOf('-');
g=Telefon.indexOf('');*/

if (a==0 && b==7 && c==15)// && d==27)// && d==b2+5) //&& c>=b+14 && d>=c+18 && e>=d+22 && f>=e+25 && g>=27)
{
alert("Телефон введён правильно");
form1.submit();
}
else
{
alert("Телефон введён неправильно");
}
}


Как правильно нужно делать проверку повторяющихся символов и "-"?
Ответить с цитированием
  #2 (permalink)  
Старый 21.11.2012, 16:36
Аватар для Margarita
Аспирант
Отправить личное сообщение для Margarita Посмотреть профиль Найти все сообщения от Margarita
 
Регистрация: 14.09.2012
Сообщений: 83

мне кажется, что если у вас должен быть один -, то можно найти значение первого - и проверить что следующий символ после него является числом или скобкой
где-то так:
if(Telefon.charAt(Telefon.indexOf("-")+1) == "(" || !isNAN(Telefon.charAt(Telefon.indexOf("-")+1)) {
alert("Ok");
}
Ответить с цитированием
  #3 (permalink)  
Старый 21.11.2012, 16:57
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

Убивать. Насиловать сучковатой толстой веткой до самой смерти за такое.
Проблемы форматирования телефона - это твои проблемы, а не проблемы человека пришедшего на твой сайт. Человек должен вводить номер телефона так, как ему это нравится, а если ты не удосужился выучить регулярки - это проблема твоей некомпетентности.
__________________
29375, 35
Ответить с цитированием
  #4 (permalink)  
Старый 22.11.2012, 10:54
Новичок на форуме
Отправить личное сообщение для VetalMan23 Посмотреть профиль Найти все сообщения от VetalMan23
 
Регистрация: 21.11.2012
Сообщений: 6

Сообщение от Margarita Посмотреть сообщение
мне кажется, что если у вас должен быть один -, то можно найти значение первого - и проверить что следующий символ после него является числом или скобкой
где-то так:
if(Telefon.charAt(Telefon.indexOf("-")+1) == "(" || !isNAN(Telefon.charAt(Telefon.indexOf("-")+1)) {
alert("Ok");
}
Если речь идёт об одном из 2-х последних "-", то как проверить на наличие второе "-"?
Ответить с цитированием
  #5 (permalink)  
Старый 22.11.2012, 10:56
Новичок на форуме
Отправить личное сообщение для VetalMan23 Посмотреть профиль Найти все сообщения от VetalMan23
 
Регистрация: 21.11.2012
Сообщений: 6

Сообщение от Aetae Посмотреть сообщение
Убивать. Насиловать сучковатой толстой веткой до самой смерти за такое.
Проблемы форматирования телефона - это твои проблемы, а не проблемы человека пришедшего на твой сайт. Человек должен вводить номер телефона так, как ему это нравится, а если ты не удосужился выучить регулярки - это проблема твоей некомпетентности.
Это задание на лабораторную работу. Теперь вежливо извинись и вали отсюда.
Ответить с цитированием
  #6 (permalink)  
Старый 22.11.2012, 12:03
Аватар для Margarita
Аспирант
Отправить личное сообщение для Margarita Посмотреть профиль Найти все сообщения от Margarita
 
Регистрация: 14.09.2012
Сообщений: 83

Сообщение от VetalMan23 Посмотреть сообщение
Если речь идёт об одном из 2-х последних "-", то как проверить на наличие второе "-"?
если вы имеет в виду два - подряд, то для первого будет проверка на следующий "-", а для второго уже написанная выше проверка
Ответить с цитированием
  #7 (permalink)  
Старый 22.11.2012, 15:07
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

Сообщение от VetalMan23 Посмотреть сообщение
Это задание на лабораторную работу. Теперь вежливо извинись и вали отсюда.
Извиниться? Перед не способным самостоятельно выполнить то, чему, очевидно, он должен был научиться? Не смеши меня.
__________________
29375, 35

Последний раз редактировалось Aetae, 22.11.2012 в 15:14.
Ответить с цитированием
  #8 (permalink)  
Старый 22.11.2012, 15:31
Аспирант
Отправить личное сообщение для Sanda Посмотреть профиль Найти все сообщения от Sanda
 
Регистрация: 12.10.2012
Сообщений: 90

Правильно использовать регулярные выражения.
phone = '8-(1234)-567890 8-(123)-456-78-90';
alert(
	'Номер введён ' + 
	(phone.replace(/8\-\(\d{3}\)\-\d{6} 8\-\(\d{3}\)\-\d{3}\-\d{2}\-\d{2}/, '').length ? 'не' : '') + 
	'правильно'
);
Ответить с цитированием
  #9 (permalink)  
Старый 22.11.2012, 15:50
Профессор
Посмотреть профиль Найти все сообщения от Антон Крамолов
 
Регистрация: 11.04.2012
Сообщений: 255

/^8\-(?:\(\d{4}\)\-\d{6}|\(\d{3}\)\-\d{3}\-\d{2}\-\d{2})$/.test('8-(0000)-000000')
Ответить с цитированием
  #10 (permalink)  
Старый 22.11.2012, 16:38
Новичок на форуме
Отправить личное сообщение для VetalMan23 Посмотреть профиль Найти все сообщения от VetalMan23
 
Регистрация: 21.11.2012
Сообщений: 6

Сообщение от Sanda Посмотреть сообщение
Правильно использовать регулярные выражения.
phone = '8-(1234)-567890 8-(123)-456-78-90';
alert(
	'Номер введён ' + 
	(phone.replace(/8\-\(\d{3}\)\-\d{6} 8\-\(\d{3}\)\-\d{3}\-\d{2}\-\d{2}/, '').length ? 'не' : '') + 
	'правильно'
);
Как ни странно, этот вариант не работает. Ввожу 8-(1234)-567890 8-(123)-456-78-90, но всё-равно выводит "Не правильно".
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форматирование вводимого номера + 7 123 456-78-90 danik.js Элементы интерфейса 11 12.03.2012 00:22
Проверка номера телефона при помощи регулярок Amateur Javascript под браузер 3 20.10.2011 13:34
Проверка сайта AndreyS AJAX и COMET 5 28.07.2011 20:45
Проверка полей на форме alex_89 Общие вопросы Javascript 2 13.05.2011 14:12
Проверка поля Номер телефона zhuzha Общие вопросы Javascript 7 12.05.2010 16:40