|
21.11.2012, 15:27
|
Новичок на форуме
|
|
Регистрация: 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("Телефон введён неправильно");
}
}
Как правильно нужно делать проверку повторяющихся символов и "-"?
|
|
21.11.2012, 16:36
|
|
Аспирант
|
|
Регистрация: 14.09.2012
Сообщений: 83
|
|
мне кажется, что если у вас должен быть один -, то можно найти значение первого - и проверить что следующий символ после него является числом или скобкой
где-то так:
if(Telefon.charAt(Telefon.indexOf("-")+1) == "(" || !isNAN(Telefon.charAt(Telefon.indexOf("-")+1)) {
alert("Ok");
}
|
|
21.11.2012, 16:57
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,589
|
|
Убивать. Насиловать сучковатой толстой веткой до самой смерти за такое.
Проблемы форматирования телефона - это твои проблемы, а не проблемы человека пришедшего на твой сайт. Человек должен вводить номер телефона так, как ему это нравится, а если ты не удосужился выучить регулярки - это проблема твоей некомпетентности.
__________________
29375, 35
|
|
22.11.2012, 10:54
|
Новичок на форуме
|
|
Регистрация: 21.11.2012
Сообщений: 6
|
|
Сообщение от Margarita
|
мне кажется, что если у вас должен быть один -, то можно найти значение первого - и проверить что следующий символ после него является числом или скобкой
где-то так:
if(Telefon.charAt(Telefon.indexOf("-")+1) == "(" || !isNAN(Telefon.charAt(Telefon.indexOf("-")+1)) {
alert("Ok");
}
|
Если речь идёт об одном из 2-х последних "-", то как проверить на наличие второе "-"?
|
|
22.11.2012, 10:56
|
Новичок на форуме
|
|
Регистрация: 21.11.2012
Сообщений: 6
|
|
Сообщение от Aetae
|
Убивать. Насиловать сучковатой толстой веткой до самой смерти за такое.
Проблемы форматирования телефона - это твои проблемы, а не проблемы человека пришедшего на твой сайт. Человек должен вводить номер телефона так, как ему это нравится, а если ты не удосужился выучить регулярки - это проблема твоей некомпетентности.
|
Это задание на лабораторную работу. Теперь вежливо извинись и вали отсюда.
|
|
22.11.2012, 12:03
|
|
Аспирант
|
|
Регистрация: 14.09.2012
Сообщений: 83
|
|
Сообщение от VetalMan23
|
Если речь идёт об одном из 2-х последних "-", то как проверить на наличие второе "-"?
|
если вы имеет в виду два - подряд, то для первого будет проверка на следующий "-", а для второго уже написанная выше проверка
|
|
22.11.2012, 15:07
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,589
|
|
Сообщение от VetalMan23
|
Это задание на лабораторную работу. Теперь вежливо извинись и вали отсюда.
|
Извиниться? Перед не способным самостоятельно выполнить то, чему, очевидно, он должен был научиться? Не смеши меня.
__________________
29375, 35
Последний раз редактировалось Aetae, 22.11.2012 в 15:14.
|
|
22.11.2012, 15:31
|
Аспирант
|
|
Регистрация: 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 ? 'не' : '') +
'правильно'
);
|
|
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')
|
|
22.11.2012, 16:38
|
Новичок на форуме
|
|
Регистрация: 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, но всё-равно выводит "Не правильно".
|
|
|
|