Проверка номера телефона
Стоит задача проверить форму на правильность записи формата:
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("Телефон введён неправильно"); } } Как правильно нужно делать проверку повторяющихся символов и "-"? |
мне кажется, что если у вас должен быть один -, то можно найти значение первого - и проверить что следующий символ после него является числом или скобкой
где-то так: if(Telefon.charAt(Telefon.indexOf("-")+1) == "(" || !isNAN(Telefon.charAt(Telefon.indexOf("-")+1)) { alert("Ok"); } |
Убивать. Насиловать сучковатой толстой веткой до самой смерти за такое.
Проблемы форматирования телефона - это твои проблемы, а не проблемы человека пришедшего на твой сайт. Человек должен вводить номер телефона так, как ему это нравится, а если ты не удосужился выучить регулярки - это проблема твоей некомпетентности. |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Правильно использовать регулярные выражения.
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\-(?:\(\d{4}\)\-\d{6}|\(\d{3}\)\-\d{3}\-\d{2}\-\d{2})$/.test('8-(0000)-000000')
|
Цитата:
|
Часовой пояс GMT +3, время: 17:37. |