рельсы - REGEX для проверки электронной почты - PullRequest
17 голосов
/ 22 января 2011

Я ищу регулярное выражение для проверки электронной почты, чтобы узнать, является ли оно действительным или нет .. У меня есть следующее:

def is_a_valid_email?(email)
    email_regex = %r{
      ^ # Start of string
      [0-9a-z] # First character
      [0-9a-z.+]+ # Middle characters
      [0-9a-z] # Last character
      @ # Separating @ character
      [0-9a-z] # Domain name begin
      [0-9a-z.-]+ # Domain name middle
      [0-9a-z] # Domain name end
      $ # End of string
    }xi # Case insensitive

    (email =~ email_regex)
end

Проблема с приведенным выше: XXX_XXX@Xxx.com не возвращается как действительныйкогда это должно быть.Любые мысли или предложения для лучшего регулярного выражения?

Спасибо

Ответы [ 13 ]

0 голосов
/ 23 октября 2012

Вот что мы используем.

Мы предполагаем, что это "что-то" @ "что-то". «что-то» (2-4 символа). Он должен охватывать любую «обычную» электронную почту.

/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/
0 голосов
/ 19 октября 2012
validates_format_of :email, :with => /\A[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]+\z/i
0 голосов
/ 19 августа 2011

Для проверки электронной почты я придумаю это регулярное выражение

/^[\w\d]+@[\w\d]+(\.[\w\d]+)+$/

Не знаю, насколько это вам поможет, но у меня хорошо работает.

Если кто-то обнаружит, что он не работает для какого-либо адреса электронной почты, пожалуйста, ответьте мне, чтобы я мог больше работать над этим.

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