如何从文本字段中过滤电子邮件地址

时间:2013-10-30 18:31:59

标签: filter ruby-on-rails-4 word

正在为希望过滤文本字段中的电子邮件地址的客户工作,其中每个文本都被分析,电子邮件地址被#####$$$$替换。

我提前感谢您的协助。

1 个答案:

答案 0 :(得分:1)

您可以找到包含/\S*\@\S*/Test it on Rubular等正则表达式的文本中的所有电子邮件地址,可能不完美)然后将所有匹配项替换为您选择的任何内容。

email_regex = /\S*\@\S*/
text = "This is test@example.com test string. Regex is regex@example.co.uk amazing."

result = text.gsub(email_regex, 'email_has_been_replaced')

p result
# => "This is email_has_been_replaced test string. Regex is email_has_been_replaced amazing."

在ActiveRecord模型中:

class Post < AR::B
  EMAIL_REGEX = /\S*\@\S*/
  before_validation :remove_email_addresses_from_body

  private

  def remove_email_addresses_from_body
    self.body = body.gsub(EMAIL_REGEX, 'hidden_email')
  end
end