![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 120
|
Имеется такая задача:
В переменную email мы присваиваем какой-нить адрес, к примеру (example@timon.com). Нужно проверить введенный адрес правильно введен, т.е. в адресе должны отсутствовать повторяющийся символ @, повторяющиеся точки, символ @ не должен присутствовать первым или последним, но хотя бы должна присутствовать одна точка и одна собачка. Недопустимые записи (@example.timon.com, example.timon.com@, exa@mple@.timon.com, example..timon.com). Все это нужно реализовать с помощью цикла while. С помощью других циклов не нужно. Вот что у меня получилось, хотя многое неверно: var i = 0; var signEmail:Boolean; var email = "example@timon.com" while (i < email.length) { if (email.charAt(0) == "@" || email.charAt((email.length)-1) == "@" || (email.charAt(i) == "@" && email.charAt(i+1) == "@") || (email.charAt(i) == "." && email.charAt(i+1)) == "." || sobachka.charAt(i) != "@" || sobachka.charAt(i) != "." ) { signEmail = false; trace("Проверьте корректен ли ввод !"); break; } else { signEmail = true; trace("Вы правильно набрали 8)"); } i++; } Последний раз редактировалось goldlider; 29.10.2010 в 22:21. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Проверки такого рода производятся с помощью регулярных выражений. Были уже темы на счет имейла на валидность на форуме. Гугл также в помощь.
|
|
|||||
|
Регистрация: Jun 2010
Сообщений: 120
|
что это ? Че то я не понял.
Добавлено через 3 минуты Цитата:
Так там на стр. 92 есть упражнение. Там ничего насчет регулярных выражений сказано не было. Последний раз редактировалось goldlider; 29.10.2010 в 22:35. |
|
|||||
|
Регистрация: May 2010
Адрес: пространство в положении
Сообщений: 219
|
есть у типа String метод indexof, он проверяет если в строке символ(ы).
(Вроде метод тот) |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 120
|
Цитата:
Добавлено через 45 минут Может у кого-нибудь есть идеи ?? |
|
|||||
|
ветеран форума
|
goldlider, Вам уже дали идею в одну строку вместо 20.
Вы боитесь регулярных выражений? То что Колин Мук по своим соображениям в том упражнении этого не показал, совсем не значит что остальные решения не верны. var userMail:String = "s0me.us_er@mail256a.wtf"; // вариант 1 function isValidEmail(email:String):Boolean { var pattern:RegExp = /^[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,4}$/i; return email.match(pattern) != null; } if ( isValidEmail(userMail) ) trace("1. верный"); else trace("1. не верный"); // вариант 2 if ( /^[a-z0-9][-._a-z0-9]*@([a-z0-9][-_a-z0-9]*\.)+[a-z]{2,6}$/.test(userMail) ) trace("2. верный"); else trace("2. не верный"); Когда то натыкался типа на идеальное РВ, длина и вид впечатлили. ![]()
__________________
trace("Остановите Землю, я сойду!!!"); Последний раз редактировалось Mur4ik; 30.10.2010 в 00:13. |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 120
|
Mur4ik сам уже нашел решение. Я просто, забыл добавить в условие, что задача должна только лишь с помощью цикла while, условия if и метода charAt.
Правда код большой. Но самое главное работает. var i = 0; var j = 0; var k = 0; var signEmail:Boolean; var email = "example@timon.com" while (i < email.length) { if (email.charAt(0) == "@" || email.charAt((email.length)-1) == "@" || email.charAt(0) == "." || email.charAt((email.length)-1) == ".") { signEmail = false; trace("Проверьте корректен ли ввод !"); break; } else if (email.charAt(i) == "@") { j++; if (j == 2) { signEmail = false; trace("Более одного @ недопустимо"); break; } } else if (email.charAt(i) == ".") { k++; if (k == 2) { signEmail = false; trace("Более одного . недопустимо") break; } } i++; } if (j == 0) { signEmail = false; trace("Введите хотя бы один @"); } else if (k == 0) { signEmail = false; trace("Введите хотя бы один ."); } else { trace("Введенный вами адрес правильный") } |
|
|||||
|
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
goldlider, вы извращенец.
|
|
|||||
|
Регистрация: May 2010
Адрес: пространство в положении
Сообщений: 219
|
теже яйца, только вид сбоку. ;(
|
![]() |
![]() |
Часовой пояс GMT +4, время: 23:49. |
|
|
« Предыдущая тема | Следующая тема » |
|
|