Ruby, Rails - как проверить, является ли var электронной почтой - PullRequest
2 голосов
/ 04 января 2011

Имеется ли в Rails 3 или Ruby встроенный способ возврата true или false, если переменная является адресом электронной почты?

пример

1 returns false
dadadad@asdasd.net returns true
blah+asdasds@asdasd.net returns true
asdasdasdads returns false

Может быть, что-то вроде, если 1.is_a? Конец электронной почты

спасибо

Ответы [ 3 ]

7 голосов
/ 04 января 2011

В итоге я использовал гем Rails, EmailVeracity , который отлично работал

3 голосов
/ 04 января 2011

Примерно так должно работать:

def isEmail(str)
  return str.match(/[a-zA-Z0-9._%]@(?:[a-zA-Z0-9]\.)[a-zA-Z]{2,4}/)
end
1 голос
/ 04 января 2011

В модели вы можете использовать валидаторы (в ActiveModel) вместе с

как то так:

class User
  include ActiveModel::Validations

  validates :email, :presence => true,
                    :format => {:with => /^[^@\s]+)@((?:[-a-z0-9A-Z]+\.[a-zA-Z]{2,})$/}

end

см. http://yehudakatz.com/2010/01/10/activemodel-make-any-ruby-object-feel-like-activerecord/ Подробнее об ActiveModel

...