Я использую следующее регулярное выражение для проверки электронной почты в электронной почте БД в Rails приложения:Ruby: Удалить «двойную точку» с регулярным выражением
/\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i
это своего рода работает, но он оставляет меня с некорректными почты Wich имеет такую ошибку:
[email protected]
Как я могу rwrite это регулярное выражения, чтобы избежать этого или который является самым лучшим регулярным выражением, чтобы очистить список адресов электронной почты, я должен оставить только действительные адреса электронной почты? Я использую метод, как этот, чтобы очистить список:
def mailSweep
mails = Email.all.lazy
for address in mails do
if address.email.to_s =~ /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i
puts address.email.to_s + " " + "it's valid"
else
puts address.email.to_s + " " + "it's invalid, destroying..."
address.destroy
end
end
end
См. Http://stackoverflow.com/questions/703060/valid-email-address-regular-expression для печальной реальности регулярных адресов электронной почты с регулярным выражением. Затем найдите драгоценный камень, чтобы сделать это за вас. Вот один из них: https://github.com/dim/rfc-822. –
@Jim Stewart, +1 за то, что он показывает, почему он испорчен и отличное альтернативное решение. –