Правило № 2
/^(?:\.?[^.])+\.?$/
означает любое количество последовательностей (необязательная точка, за которой следует обязательная не точка) с необязательной точкой в конце.
Рассмотрим четыре двухсимвольные последовательности
xx
соответствует двум не точечным символам.
.x
соответствует дополнительной точке, за которой следует не точка.
x.
соответствует не точке, за которой следует дополнительная точка в конце.
..
не совпадает, потому что после первой точки нет точек.
Одна вещь, которую следует помнить об адресах электронной почты, это то, что точки могут появляться в хитрых местах
"..@"@.example.com
является действительным адресом электронной почты.
"..@"
- это совершенно допустимое цитируемое локальное производство, а .example.com
- это просто способ сказать example.com
, но он разрешен для корневого DNS вместо использования пути поиска узла. example.com
может преобразоваться в example.com.myintranet.com
, если myintranet.com
находится в пути поиска хоста, но .example.com
всегда разрешается в абсолютный хост example.com
.