убедитесь, что адрес электронной почты содержит "@" и "." - PullRequest
2 голосов
/ 10 мая 2011

Мне нужно проверить, что введенный адрес электронной почты содержит «@» и «.» без регулярного выражения. Может кто-нибудь дать мне примеры "java-кода" и "структурной схемы"?

Ответы [ 7 ]

10 голосов
/ 11 мая 2011

Я подозреваю вы ищете что-то вроде:

if (!address.contains("@") || !address.contains("."))
{
    // Handle bad address
}

РЕДАКТИРОВАТЬ: Это далеко от полной проверки, конечно. Это едва ли начало проверки - но, надеюсь, это поможет вам разобраться с конкретным случаем, который вы хотели бы обработать.

3 голосов
/ 11 мая 2011

Вы можете использовать commons-validator, в частности EmailValidator.isValid()

1 голос
/ 11 мая 2011
int dot = address.indexOf('.');
int at = address.indexOf('@', dot + 1);

if(dot == -1 || at == -1 || address.length() == 2) {
  // handle bad address
}

Это не полное решение. Вам придется проверять наличие нескольких @ и указывать только '.' и'@'.

1 голос
/ 11 мая 2011

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

0 голосов
/ 11 мая 2011

Вы можете найти первое '@', а затем проверить, является ли то, что у вас слева от '@', допустимой строкой (то есть в ней нет пробелов или чего-либо еще).После этого вы должны найти в правой части «.» И проверить обе строки на наличие действительного домена.

Это довольно слабый тест.В любом случае, я рекомендую использовать регулярные выражения.

0 голосов
/ 11 мая 2011

Вы также можете использовать Java Mail API.В частности, здесь:

http://javamail.kenai.com/nonav/javadocs/javax/mail/internet/InternetAddress.html#InternetAddress(java.lang.String, логическое значение)

0 голосов
/ 11 мая 2011

Используйте String.indexOf, если вам не разрешено использовать регулярные выражения, но я бы настоятельно рекомендовал вам не проверять адрес во время ввода.

Лучше отправить письмо с кодом активации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...