список адресов электронной почты, которые могут использоваться для тестирования сценария проверки JavaScript

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

18
задан Matt 12 June 2013 в 16:07
поделиться

3 ответа

Я теперь сопоставил тестовые сценарии от Cal Henderson, Dave Child, Phil Haack, Doug Lovell и тестовых адресов RFC 3696. 164 во всем .

я запустил все эти тесты против всех блоков проверки допустимости, которые я мог найти. <забастовка> сравнение здесь: http://www.dominicsayers.com/isemail

я попытаюсь усовершенствовать эту страницу, поскольку люди улучшают свои блоки проверки допустимости. Благодаря Cal, Dave и Phil для их справки и сотрудничества в компиляции этих тестов и конструктивной критики мой собственный блок проверки допустимости .

Люди должны знать эти опечатки против RFC 3696 в частности. Тремя из канонических примеров являются на самом деле недопустимые адреса. И максимальная длина адреса является 254 или 256 символами, не 320.

9
ответ дан 30 November 2019 в 07:34
поделиться

Примеры, допустимые согласно RFC2822

  • me@example.com
  • a.nonymous@example.com
  • name+tag@example.com
  • name\@tag@example.com †“, это - действующий электронный адрес, содержащий два символы.
  • spaces\are\allowed@example.com
  • "пробелы может быть заключен в кавычки "@example.com
  • ! % $ # &';* +-/=.?^ _ '{|} ~ [1.0.0.127]
  • ! % $ # &';* +-/=.?^ _ '{|} ~ [IPv6:0123:4567:89AB:CDEF:0123:4567:89AB:CDEF]
  • меня (это - комментарий) @example.com †“комментарии препятствует, но не запрещает RFC2822.

Примеры, недопустимые согласно RFC2822s

  • me@
  • @example.com
  • me.@example.com
  • .me@example.com
  • me@example..com
  • me.example@com
  • me\@example.com

От: http://en.wikibooks.org/wiki/JavaScript/Best_Practices

26
ответ дан 30 November 2019 в 07:34
поделиться

Доменная часть (после последнего), серия строковых маркировок, разделенных на точку.

Каждая маркировка является строкой 1 - 63 октетов, состоящих из A-Z, a-z 0-9 или дефиса (-)

Максимальный размер домена является 255 октетами.

Чтобы быть совместимой с arpanet, каждая маркировка должна начаться с буквы и закончиться буквой или цифрой, но некоторый TLD:s теперь позволяет весь числовой домен, как 0.nu

Обратите внимание, что TLD позволяют быть 63 октетами. Очень много документов на получение неправильно ограничивают его октетами 2-3, делающими domain.name недопустимый.

Пример?

abcdefghijklmnopqrstuvwxyz. ABCDEFGHIJKLMNOPQRSTUVWXYZ. % $!# и '+-/=.?^' {|} ~ @ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-0123456789.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z. A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.0.1.2.3.4.5.6.7.8.9.a-z. A-Z.0-9.a0.b1.c2.d3.e4.f5.g6.h7.i8.j9. K0. L1. M2. N3. O.domain.name

(и не, это не регистрируется),

Обновление: С IDNA почти все возможно:

  • punnycode@XN--0ZWM56D.XN--HGBK6AJ7F53BBA
  • idna_in_clear(?) _text 例子. 测试. مثال. آزمایشی

См. также:

https://stackoverflow.com/questions/3232/how-far-should-one-take-e-mail-address-validation

http://www.leshazlewood.com/?p=5

Обновление: Bobince предложил протестировать на точку в доменном имени.

Сводка: Только тест для и точка в доменной части и затем отправляет электронное письмо с подтверждением.

Вот пример, которые тестируют на и точка:

  • Должен быть по крайней мере один
  • Должен быть по крайней мере один символ в локальной части (на месте продажи> 0)
  • В доменной части должна быть по крайней мере одна точка
  • Доменная часть должна быть во чтобы 4 символа

Вот простой:

function isEmail(address) {
    var pos = address.lastIndexOf("@");
    return pos > 0 && (address.lastIndexOf(".") > pos) && (address.length - pos > 4);
}

Или функция, которая возвращает локальную и доменную часть в объекте (если Вы хотите обработать ее еще больше, например, преобразуйте ее в punycode),

function isEmail(address) {
    var pos = address.lastIndexOf("@");
    return pos > 0 && (address.lastIndexOf(".") > pos) && (address.length - pos > 4) ? 
    {
        local:address.substr(0,pos < 0 ? 0 : pos),
        domain:address.substr(pos+1)
    }: false;
}
0
ответ дан 30 November 2019 в 07:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: